<!DOCTYPE html>

<html>
  <head>
    <title>Protocol Documentation</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic"/>
    <style>
      body {
        width: 60em;
        margin: 1em auto;
        color: #222;
        font-family: "Ubuntu", sans-serif;
        padding-bottom: 4em;
      }

      h1 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      h2 {
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
        margin: 1.5em 0;
      }

      h3 {
        font-weight: normal;
        border-bottom: 1px solid #aaa;
        padding-bottom: 0.5ex;
      }

      a {
        text-decoration: none;
        color: #567e25;
      }

      table {
        width: 100%;
        font-size: 80%;
        border-collapse: collapse;
      }

      thead {
        font-weight: 700;
        background-color: #dcdcdc;
      }

      tbody tr:nth-child(even) {
        background-color: #fbfbfb;
      }

      td {
        border: 1px solid #ccc;
        padding: 0.5ex 2ex;
      }

      td p {
        text-indent: 1em;
        margin: 0;
      }

      td p:nth-child(1) {
        text-indent: 0;  
      }

       
      .field-table td:nth-child(1) {  
        width: 10em;
      }
      .field-table td:nth-child(2) {  
        width: 10em;
      }
      .field-table td:nth-child(3) {  
        width: 6em;
      }
      .field-table td:nth-child(4) {  
        width: auto;
      }

       
      .extension-table td:nth-child(1) {  
        width: 10em;
      }
      .extension-table td:nth-child(2) {  
        width: 10em;
      }
      .extension-table td:nth-child(3) {  
        width: 10em;
      }
      .extension-table td:nth-child(4) {  
        width: 5em;
      }
      .extension-table td:nth-child(5) {  
        width: auto;
      }

       
      .enum-table td:nth-child(1) {  
        width: 10em;
      }
      .enum-table td:nth-child(2) {  
        width: 10em;
      }
      .enum-table td:nth-child(3) {  
        width: auto;
      }

       
      .scalar-value-types-table tr {
        height: 3em;
      }

       
      #toc-container ul {
        list-style-type: none;
        padding-left: 1em;
        line-height: 180%;
        margin: 0;
      }
      #toc > li > a {
        font-weight: bold;
      }

       
      .file-heading {
        width: 100%;
        display: table;
        border-bottom: 1px solid #aaa;
        margin: 4em 0 1.5em 0;
      }
      .file-heading h2 {
        border: none;
        display: table-cell;
      }
      .file-heading a {
        text-align: right;
        display: table-cell;
      }

       
      .badge {
        width: 1.6em;
        height: 1.6em;
        display: inline-block;

        line-height: 1.6em;
        text-align: center;
        font-weight: bold;
        font-size: 60%;

        color: #89ba48;
        background-color: #dff0c8;

        margin: 0.5ex 1em 0.5ex -1em;
        border: 1px solid #fbfbfb;
        border-radius: 1ex;
      }
    </style>

    
    <link rel="stylesheet" type="text/css" href="stylesheet.css"/>
  </head>

  <body>

    <h1 id="title">Protocol Documentation</h1>

    <h2>Table of Contents</h2>

    <div id="toc-container">
      <ul id="toc">
        
          
          <li>
            <a href="#store%2fcommon.proto">store/common.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PageToken"><span class="badge">M</span>PageToken</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Position"><span class="badge">M</span>Position</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Range"><span class="badge">M</span>Range</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Engine"><span class="badge">E</span>Engine</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExportFormat"><span class="badge">E</span>ExportFormat</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingLevel"><span class="badge">E</span>MaskingLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RiskLevel"><span class="badge">E</span>RiskLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaChangeType"><span class="badge">E</span>SchemaChangeType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.VCSType"><span class="badge">E</span>VCSType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fadvice.proto">store/advice.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Advice"><span class="badge">M</span>Advice</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Advice.Status"><span class="badge">E</span>Advice.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fapproval.proto">store/approval.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ApprovalFlow"><span class="badge">M</span>ApprovalFlow</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ApprovalTemplate"><span class="badge">M</span>ApprovalTemplate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval"><span class="badge">M</span>IssuePayloadApproval</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval.Approver"><span class="badge">M</span>IssuePayloadApproval.Approver</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.IssuePayloadApproval.Approver.Status"><span class="badge">E</span>IssuePayloadApproval.Approver.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2faudit_log.proto">store/audit_log.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.AuditLog"><span class="badge">M</span>AuditLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RequestMetadata"><span class="badge">M</span>RequestMetadata</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.AuditLog.Severity"><span class="badge">E</span>AuditLog.Severity</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fchangelog.proto">store/changelog.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceDatabase"><span class="badge">M</span>ChangedResourceDatabase</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceFunction"><span class="badge">M</span>ChangedResourceFunction</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceProcedure"><span class="badge">M</span>ChangedResourceProcedure</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceSchema"><span class="badge">M</span>ChangedResourceSchema</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceTable"><span class="badge">M</span>ChangedResourceTable</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResourceView"><span class="badge">M</span>ChangedResourceView</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangedResources"><span class="badge">M</span>ChangedResources</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ChangelogPayload"><span class="badge">M</span>ChangelogPayload</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.ChangelogPayload.Type"><span class="badge">E</span>ChangelogPayload.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fdatabase.proto">store/database.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.BoundingBox"><span class="badge">M</span>BoundingBox</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.CheckConstraintMetadata"><span class="badge">M</span>CheckConstraintMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnCatalog"><span class="badge">M</span>ColumnCatalog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnCatalog.LabelsEntry"><span class="badge">M</span>ColumnCatalog.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ColumnMetadata"><span class="badge">M</span>ColumnMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseConfig"><span class="badge">M</span>DatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseMetadata"><span class="badge">M</span>DatabaseMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseMetadata.LabelsEntry"><span class="badge">M</span>DatabaseMetadata.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DatabaseSchemaMetadata"><span class="badge">M</span>DatabaseSchemaMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DependencyColumn"><span class="badge">M</span>DependencyColumn</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DependencyTable"><span class="badge">M</span>DependencyTable</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DimensionalConfig"><span class="badge">M</span>DimensionalConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnumTypeMetadata"><span class="badge">M</span>EnumTypeMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EventMetadata"><span class="badge">M</span>EventMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EventTriggerMetadata"><span class="badge">M</span>EventTriggerMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExcludeConstraintMetadata"><span class="badge">M</span>ExcludeConstraintMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExtensionMetadata"><span class="badge">M</span>ExtensionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ExternalTableMetadata"><span class="badge">M</span>ExternalTableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ForeignKeyMetadata"><span class="badge">M</span>ForeignKeyMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.FunctionMetadata"><span class="badge">M</span>FunctionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GenerationMetadata"><span class="badge">M</span>GenerationMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GridLevel"><span class="badge">M</span>GridLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IndexMetadata"><span class="badge">M</span>IndexMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceRoleMetadata"><span class="badge">M</span>InstanceRoleMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.LinkedDatabaseMetadata"><span class="badge">M</span>LinkedDatabaseMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaterializedViewMetadata"><span class="badge">M</span>MaterializedViewMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ObjectSchema"><span class="badge">M</span>ObjectSchema</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ObjectSchema.ArrayKind"><span class="badge">M</span>ObjectSchema.ArrayKind</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ObjectSchema.StructKind"><span class="badge">M</span>ObjectSchema.StructKind</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ObjectSchema.StructKind.PropertiesEntry"><span class="badge">M</span>ObjectSchema.StructKind.PropertiesEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PackageMetadata"><span class="badge">M</span>PackageMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ProcedureMetadata"><span class="badge">M</span>ProcedureMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RuleMetadata"><span class="badge">M</span>RuleMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaCatalog"><span class="badge">M</span>SchemaCatalog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchemaMetadata"><span class="badge">M</span>SchemaMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SequenceMetadata"><span class="badge">M</span>SequenceMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SpatialIndexConfig"><span class="badge">M</span>SpatialIndexConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SpatialIndexConfig.EngineSpecificEntry"><span class="badge">M</span>SpatialIndexConfig.EngineSpecificEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StorageConfig"><span class="badge">M</span>StorageConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata"><span class="badge">M</span>StreamMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TableCatalog"><span class="badge">M</span>TableCatalog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TableMetadata"><span class="badge">M</span>TableMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TablePartitionMetadata"><span class="badge">M</span>TablePartitionMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskMetadata"><span class="badge">M</span>TaskMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TessellationConfig"><span class="badge">M</span>TessellationConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TriggerMetadata"><span class="badge">M</span>TriggerMetadata</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ViewMetadata"><span class="badge">M</span>ViewMetadata</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.ColumnMetadata.IdentityGeneration"><span class="badge">E</span>ColumnMetadata.IdentityGeneration</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GenerationMetadata.Type"><span class="badge">E</span>GenerationMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ObjectSchema.Type"><span class="badge">E</span>ObjectSchema.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata.Mode"><span class="badge">E</span>StreamMetadata.Mode</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.StreamMetadata.Type"><span class="badge">E</span>StreamMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TablePartitionMetadata.Type"><span class="badge">E</span>TablePartitionMetadata.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskMetadata.State"><span class="badge">E</span>TaskMetadata.State</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fexport_archive.proto">store/export_archive.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ExportArchivePayload"><span class="badge">M</span>ExportArchivePayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fgroup.proto">store/group.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.GroupMember"><span class="badge">M</span>GroupMember</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.GroupPayload"><span class="badge">M</span>GroupPayload</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.GroupMember.Role"><span class="badge">E</span>GroupMember.Role</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fidp.proto">store/idp.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.FieldMapping"><span class="badge">M</span>FieldMapping</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IdentityProviderConfig"><span class="badge">M</span>IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IdentityProviderUserInfo"><span class="badge">M</span>IdentityProviderUserInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.LDAPIdentityProviderConfig"><span class="badge">M</span>LDAPIdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OAuth2IdentityProviderConfig"><span class="badge">M</span>OAuth2IdentityProviderConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OIDCIdentityProviderConfig"><span class="badge">M</span>OIDCIdentityProviderConfig</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.IdentityProviderType"><span class="badge">E</span>IdentityProviderType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.LDAPIdentityProviderConfig.SecurityProtocol"><span class="badge">E</span>LDAPIdentityProviderConfig.SecurityProtocol</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.OAuth2AuthStyle"><span class="badge">E</span>OAuth2AuthStyle</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2finstance.proto">store/instance.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.DataSource"><span class="badge">M</span>DataSource</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.AWSCredential"><span class="badge">M</span>DataSource.AWSCredential</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.Address"><span class="badge">M</span>DataSource.Address</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.AzureCredential"><span class="badge">M</span>DataSource.AzureCredential</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.ExtraConnectionParametersEntry"><span class="badge">M</span>DataSource.ExtraConnectionParametersEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.GCPCredential"><span class="badge">M</span>DataSource.GCPCredential</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret"><span class="badge">M</span>DataSourceExternalSecret</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption"><span class="badge">M</span>DataSourceExternalSecret.AppRoleAuthOption</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Instance"><span class="badge">M</span>Instance</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Instance.LabelsEntry"><span class="badge">M</span>Instance.LabelsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.InstanceRole"><span class="badge">M</span>InstanceRole</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.KerberosConfig"><span class="badge">M</span>KerberosConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SASLConfig"><span class="badge">M</span>SASLConfig</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.DataSource.AuthenticationType"><span class="badge">E</span>DataSource.AuthenticationType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSource.RedisType"><span class="badge">E</span>DataSource.RedisType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType"><span class="badge">E</span>DataSourceExternalSecret.AppRoleAuthOption.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.AuthType"><span class="badge">E</span>DataSourceExternalSecret.AuthType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceExternalSecret.SecretType"><span class="badge">E</span>DataSourceExternalSecret.SecretType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceType"><span class="badge">E</span>DataSourceType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2finstance_change_history.proto">store/instance_change_history.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.InstanceChangeHistoryPayload"><span class="badge">M</span>InstanceChangeHistoryPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fissue.proto">store/issue.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.GrantRequest"><span class="badge">M</span>GrantRequest</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Issue"><span class="badge">M</span>Issue</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Issue.Status"><span class="badge">E</span>Issue.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Issue.Type"><span class="badge">E</span>Issue.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask_run.proto">store/task_run.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail"><span class="badge">M</span>PriorBackupDetail</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail.Item"><span class="badge">M</span>PriorBackupDetail.Item</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PriorBackupDetail.Item.Table"><span class="badge">M</span>PriorBackupDetail.Item.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchedulerInfo"><span class="badge">M</span>SchedulerInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SchedulerInfo.WaitingCause"><span class="badge">M</span>SchedulerInfo.WaitingCause</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRun"><span class="badge">M</span>TaskRun</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunResult"><span class="badge">M</span>TaskRunResult</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.TaskRun.Status"><span class="badge">E</span>TaskRun.Status</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fissue_comment.proto">store/issue_comment.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload"><span class="badge">M</span>IssueCommentPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.Approval"><span class="badge">M</span>IssueCommentPayload.Approval</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.IssueUpdate"><span class="badge">M</span>IssueCommentPayload.IssueUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.StageEnd"><span class="badge">M</span>IssueCommentPayload.StageEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup"><span class="badge">M</span>IssueCommentPayload.TaskPriorBackup</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup.Table"><span class="badge">M</span>IssueCommentPayload.TaskPriorBackup.Table</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IssueCommentPayload.TaskUpdate"><span class="badge">M</span>IssueCommentPayload.TaskUpdate</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fplan.proto">store/plan.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PlanConfig"><span class="badge">M</span>PlanConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig"><span class="badge">M</span>PlanConfig.ChangeDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry"><span class="badge">M</span>PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.CreateDatabaseConfig"><span class="badge">M</span>PlanConfig.CreateDatabaseConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.Deployment"><span class="badge">M</span>PlanConfig.Deployment</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.Deployment.DatabaseGroupMapping"><span class="badge">M</span>PlanConfig.Deployment.DatabaseGroupMapping</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ExportDataConfig"><span class="badge">M</span>PlanConfig.ExportDataConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanConfig.Spec"><span class="badge">M</span>PlanConfig.Spec</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.Type"><span class="badge">E</span>PlanConfig.ChangeDatabaseConfig.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fplan_check_run.proto">store/plan_check_run.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunConfig"><span class="badge">M</span>PlanCheckRunConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunConfig.GhostFlagsEntry"><span class="badge">M</span>PlanCheckRunConfig.GhostFlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult"><span class="badge">M</span>PlanCheckRunResult</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result"><span class="badge">M</span>PlanCheckRunResult.Result</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result.SqlReviewReport"><span class="badge">M</span>PlanCheckRunResult.Result.SqlReviewReport</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport"><span class="badge">M</span>PlanCheckRunResult.Result.SqlSummaryReport</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fpolicy.proto">store/policy.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Binding"><span class="badge">M</span>Binding</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataSourceQueryPolicy"><span class="badge">M</span>DataSourceQueryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentTierPolicy"><span class="badge">M</span>EnvironmentTierPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.IamPolicy"><span class="badge">M</span>IamPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy"><span class="badge">M</span>MaskingExceptionPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy.MaskingException"><span class="badge">M</span>MaskingExceptionPolicy.MaskingException</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingRulePolicy"><span class="badge">M</span>MaskingRulePolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingRulePolicy.MaskingRule"><span class="badge">M</span>MaskingRulePolicy.MaskingRule</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Policy"><span class="badge">M</span>Policy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.QueryDataPolicy"><span class="badge">M</span>QueryDataPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RolloutPolicy"><span class="badge">M</span>RolloutPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RolloutPolicy.Checkers"><span class="badge">M</span>RolloutPolicy.Checkers</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RolloutPolicy.Checkers.RequiredStatusChecks"><span class="badge">M</span>RolloutPolicy.Checkers.RequiredStatusChecks</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TagPolicy"><span class="badge">M</span>TagPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TagPolicy.TagsEntry"><span class="badge">M</span>TagPolicy.TagsEntry</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.DataSourceQueryPolicy.Restriction"><span class="badge">E</span>DataSourceQueryPolicy.Restriction</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentTierPolicy.EnvironmentTier"><span class="badge">E</span>EnvironmentTierPolicy.EnvironmentTier</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.MaskingExceptionPolicy.MaskingException.Action"><span class="badge">E</span>MaskingExceptionPolicy.MaskingException.Action</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Policy.Resource"><span class="badge">E</span>Policy.Resource</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Policy.Type"><span class="badge">E</span>Policy.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.RolloutPolicy.Checkers.PlanCheckEnforcement"><span class="badge">E</span>RolloutPolicy.Checkers.PlanCheckEnforcement</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fproject.proto">store/project.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Label"><span class="badge">M</span>Label</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Project"><span class="badge">M</span>Project</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Project.ExecutionRetryPolicy"><span class="badge">M</span>Project.ExecutionRetryPolicy</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Project.LabelsEntry"><span class="badge">M</span>Project.LabelsEntry</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fproject_webhook.proto">store/project_webhook.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Activity"><span class="badge">M</span>Activity</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ProjectWebhook"><span class="badge">M</span>ProjectWebhook</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Activity.Type"><span class="badge">E</span>Activity.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ProjectWebhook.Type"><span class="badge">E</span>ProjectWebhook.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fquery_history.proto">store/query_history.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.QueryHistoryPayload"><span class="badge">M</span>QueryHistoryPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2frelease.proto">store/release.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ReleasePayload"><span class="badge">M</span>ReleasePayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ReleasePayload.File"><span class="badge">M</span>ReleasePayload.File</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.ReleasePayload.VCSSource"><span class="badge">M</span>ReleasePayload.VCSSource</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2freview_config.proto">store/review_config.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.ReviewConfigPayload"><span class="badge">M</span>ReviewConfigPayload</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SQLReviewRule"><span class="badge">M</span>SQLReviewRule</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.SQLReviewRule.Level"><span class="badge">E</span>SQLReviewRule.Level</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SQLReviewRule.Type"><span class="badge">E</span>SQLReviewRule.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2frevision.proto">store/revision.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.RevisionPayload"><span class="badge">M</span>RevisionPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2frole.proto">store/role.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.RolePermissions"><span class="badge">M</span>RolePermissions</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fsetting.proto">store/setting.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.AISetting"><span class="badge">M</span>AISetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm"><span class="badge">M</span>Algorithm</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.FullMask"><span class="badge">M</span>Algorithm.FullMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.InnerOuterMask"><span class="badge">M</span>Algorithm.InnerOuterMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.MD5Mask"><span class="badge">M</span>Algorithm.MD5Mask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.RangeMask"><span class="badge">M</span>Algorithm.RangeMask</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.RangeMask.Slice"><span class="badge">M</span>Algorithm.RangeMask.Slice</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting"><span class="badge">M</span>AppIMSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.DingTalk"><span class="badge">M</span>AppIMSetting.DingTalk</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Feishu"><span class="badge">M</span>AppIMSetting.Feishu</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.IMSetting"><span class="badge">M</span>AppIMSetting.IMSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Lark"><span class="badge">M</span>AppIMSetting.Lark</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Slack"><span class="badge">M</span>AppIMSetting.Slack</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Teams"><span class="badge">M</span>AppIMSetting.Teams</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.AppIMSetting.Wecom"><span class="badge">M</span>AppIMSetting.Wecom</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting"><span class="badge">M</span>DataClassificationSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.DataClassification</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.Level"><span class="badge">M</span>DataClassificationSetting.DataClassificationConfig.Level</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentSetting"><span class="badge">M</span>EnvironmentSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentSetting.Environment"><span class="badge">M</span>EnvironmentSetting.Environment</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.EnvironmentSetting.Environment.TagsEntry"><span class="badge">M</span>EnvironmentSetting.Environment.TagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SemanticTypeSetting"><span class="badge">M</span>SemanticTypeSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SemanticTypeSetting.SemanticType"><span class="badge">M</span>SemanticTypeSetting.SemanticType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SystemSetting"><span class="badge">M</span>SystemSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceApprovalSetting"><span class="badge">M</span>WorkspaceApprovalSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceApprovalSetting.Rule"><span class="badge">M</span>WorkspaceApprovalSetting.Rule</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting"><span class="badge">M</span>WorkspaceProfileSetting</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting.Announcement"><span class="badge">M</span>WorkspaceProfileSetting.Announcement</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting.PasswordRestriction"><span class="badge">M</span>WorkspaceProfileSetting.PasswordRestriction</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.AISetting.Provider"><span class="badge">E</span>AISetting.Provider</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Algorithm.InnerOuterMask.MaskType"><span class="badge">E</span>Algorithm.InnerOuterMask.MaskType</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.SettingName"><span class="badge">E</span>SettingName</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceApprovalSetting.Rule.Source"><span class="badge">E</span>WorkspaceApprovalSetting.Rule.Source</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting.Announcement.AlertLevel"><span class="badge">E</span>WorkspaceProfileSetting.Announcement.AlertLevel</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.WorkspaceProfileSetting.DatabaseChangeMode"><span class="badge">E</span>WorkspaceProfileSetting.DatabaseChangeMode</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fsheet.proto">store/sheet.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.SheetPayload"><span class="badge">M</span>SheetPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask.proto">store/task.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.Task"><span class="badge">M</span>Task</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.Task.FlagsEntry"><span class="badge">M</span>Task.FlagsEntry</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskReleaseSource"><span class="badge">M</span>TaskReleaseSource</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.Task.Type"><span class="badge">E</span>Task.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2ftask_run_log.proto">store/task_run_log.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog"><span class="badge">M</span>TaskRunLog</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.CommandExecute"><span class="badge">M</span>TaskRunLog.CommandExecute</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.CommandResponse"><span class="badge">M</span>TaskRunLog.CommandResponse</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.ComputeDiffEnd"><span class="badge">M</span>TaskRunLog.ComputeDiffEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.ComputeDiffStart"><span class="badge">M</span>TaskRunLog.ComputeDiffStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.DatabaseSyncEnd"><span class="badge">M</span>TaskRunLog.DatabaseSyncEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.DatabaseSyncStart"><span class="badge">M</span>TaskRunLog.DatabaseSyncStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.PriorBackupEnd"><span class="badge">M</span>TaskRunLog.PriorBackupEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.PriorBackupStart"><span class="badge">M</span>TaskRunLog.PriorBackupStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.RetryInfo"><span class="badge">M</span>TaskRunLog.RetryInfo</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.SchemaDumpEnd"><span class="badge">M</span>TaskRunLog.SchemaDumpEnd</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.SchemaDumpStart"><span class="badge">M</span>TaskRunLog.SchemaDumpStart</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate"><span class="badge">M</span>TaskRunLog.TaskRunStatusUpdate</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TransactionControl"><span class="badge">M</span>TaskRunLog.TransactionControl</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status"><span class="badge">E</span>TaskRunLog.TaskRunStatusUpdate.Status</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.TransactionControl.Type"><span class="badge">E</span>TaskRunLog.TransactionControl.Type</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.TaskRunLog.Type"><span class="badge">E</span>TaskRunLog.Type</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fuser.proto">store/user.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.MFAConfig"><span class="badge">M</span>MFAConfig</a>
                </li>
              
                <li>
                  <a href="#bytebase.store.UserProfile"><span class="badge">M</span>UserProfile</a>
                </li>
              
              
                <li>
                  <a href="#bytebase.store.PrincipalType"><span class="badge">E</span>PrincipalType</a>
                </li>
              
              
              
            </ul>
          </li>
        
          
          <li>
            <a href="#store%2fworksheet.proto">store/worksheet.proto</a>
            <ul>
              
                <li>
                  <a href="#bytebase.store.WorkSheetOrganizerPayload"><span class="badge">M</span>WorkSheetOrganizerPayload</a>
                </li>
              
              
              
              
            </ul>
          </li>
        
        <li><a href="#scalar-value-types">Scalar Value Types</a></li>
      </ul>
    </div>

    
      
      <div class="file-heading">
        <h2 id="store/common.proto">store/common.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PageToken">PageToken</h3>
        <p>PageToken is used internally for obfuscating pagination tokens.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Maximum number of items to return. </p></td>
                </tr>
              
                <tr>
                  <td>offset</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Number of items to skip before starting to return results. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Position">Position</h3>
        <p>Position in a text expressed as one-based line and one-based column.</p><p>We use 1-based numbering to match the majority of industry standards:</p><p>- Monaco Editor uses 1-based (https://microsoft.github.io/monaco-editor/typedoc/interfaces/IPosition.html)</p><p>- GitHub Actions uses 1-based (https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message)</p><p>- Most text editors display 1-based positions to users</p><p>Note: LSP uses 0-based (https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#position),</p><p>but we follow the canonical user-facing standards.</p><p>Handling unknown positions:</p><p>- If the entire position is unknown, leave this field as nil/undefined</p><p>- If only line is known, set line and leave column as 0 (e.g., line=5, column=0)</p><p>- If only column is known (rare), set column and leave line as 0</p><p>Frontends should check for nil/undefined/zero values and handle them appropriately.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>line</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Line position in a text (one-based).
First line of the text is line 1.
A value of 0 indicates the line information is unknown. </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Column position in a text (one-based).
Column is measured in Unicode code points (characters/runes), not bytes or grapheme clusters.
First character of the line is column 1.
A value of 0 indicates the column information is unknown.

Examples:
- &#34;SELECT * FROM t&#34; - column 8 is &#39;*&#39;
- &#34;SELECT 你好 FROM t&#34; - column 8 is &#39;你&#39; (even though it&#39;s at byte offset 7)
- &#34;SELECT 😀 FROM t&#34; - column 8 is &#39;😀&#39; (even though it&#39;s 4 bytes in UTF-8) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Range">Range</h3>
        <p>Range represents a span within a text or sequence.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Start index (inclusive). </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>End index (exclusive). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Engine">Engine</h3>
        <p>Engine represents the type of database system.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENGINE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLICKHOUSE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MYSQL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>POSTGRES</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SNOWFLAKE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQLITE</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TIDB</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MONGODB</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDIS</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ORACLE</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SPANNER</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MSSQL</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REDSHIFT</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MARIADB</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OCEANBASE</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STARROCKS</td>
                <td>18</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DORIS</td>
                <td>19</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIVE</td>
                <td>20</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ELASTICSEARCH</td>
                <td>21</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BIGQUERY</td>
                <td>22</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DYNAMODB</td>
                <td>23</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABRICKS</td>
                <td>24</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COCKROACHDB</td>
                <td>25</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COSMOSDB</td>
                <td>26</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TRINO</td>
                <td>27</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CASSANDRA</td>
                <td>28</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ExportFormat">ExportFormat</h3>
        <p>ExportFormat represents the file format for exported data.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>FORMAT_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CSV</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>JSON</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SQL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>XLSX</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.MaskingLevel">MaskingLevel</h3>
        <p>MaskingLevel represents the level of data masking applied to sensitive information.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASKING_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NONE</td>
                <td>1</td>
                <td><p>No masking applied.</p></td>
              </tr>
            
              <tr>
                <td>PARTIAL</td>
                <td>2</td>
                <td><p>Partial masking (e.g., showing first/last characters).</p></td>
              </tr>
            
              <tr>
                <td>FULL</td>
                <td>3</td>
                <td><p>Full masking (all characters masked).</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.RiskLevel">RiskLevel</h3>
        <p>RiskLevel represents the assessed risk level of a database operation.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RISK_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LOW</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODERATE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HIGH</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SchemaChangeType">SchemaChangeType</h3>
        <p>SchemaChangeType represents the strategy for schema changes.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SCHEMA_CHANGE_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VERSIONED</td>
                <td>1</td>
                <td><p>Versioned migration with explicit migration scripts.</p></td>
              </tr>
            
              <tr>
                <td>DECLARATIVE</td>
                <td>2</td>
                <td><p>Declarative schema definition (state-based).</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.VCSType">VCSType</h3>
        <p>VCSType represents the type of version control system.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>VCS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GITHUB</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GITLAB</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BITBUCKET</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AZURE_DEVOPS</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/advice.proto">store/advice.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Advice">Advice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.Advice.Status">Advice.Status</a></td>
                  <td></td>
                  <td><p>The advice status. </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The advice code. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice title. </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The advice content. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>The start_position is inclusive and the end_position is exclusive.
TODO: use range instead. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Advice.Status">Advice.Status</h3>
        <p>Status represents the result status of the advice.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SUCCESS</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/approval.proto">store/approval.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ApprovalFlow">ApprovalFlow</h3>
        <p>ApprovalFlow defines the sequence of approvals required.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>List of role names that must approve, in order. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ApprovalTemplate">ApprovalTemplate</h3>
        <p>ApprovalTemplate defines the approval workflow and requirements for an issue.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>flow</td>
                  <td><a href="#bytebase.store.ApprovalFlow">ApprovalFlow</a></td>
                  <td></td>
                  <td><p>The approval workflow specification. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Human-readable title of the approval template. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Detailed description of when this template applies. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssuePayloadApproval">IssuePayloadApproval</h3>
        <p>IssuePayloadApproval records the approval template used and approval history for an issue.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>approval_template</td>
                  <td><a href="#bytebase.store.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td></td>
                  <td><p>The approval template being used for this issue. </p></td>
                </tr>
              
                <tr>
                  <td>approvers</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.Approver">IssuePayloadApproval.Approver</a></td>
                  <td>repeated</td>
                  <td><p>List of approvers and their current status. </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_done</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether the system has finished finding a matching approval template.
False means the backend is still searching for matching templates. </p></td>
                </tr>
              
                <tr>
                  <td>approval_finding_error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Error message if approval template finding failed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssuePayloadApproval.Approver">IssuePayloadApproval.Approver</h3>
        <p>Approver represents a user who can approve or reject an issue.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.Approver.Status">IssuePayloadApproval.Approver.Status</a></td>
                  <td></td>
                  <td><p>The current approval status. </p></td>
                </tr>
              
                <tr>
                  <td>principal_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The ID of the principal who is the approver. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.IssuePayloadApproval.Approver.Status">IssuePayloadApproval.Approver.Status</h3>
        <p>Status represents the approver's decision state.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p>Approval is pending from this approver.</p></td>
              </tr>
            
              <tr>
                <td>APPROVED</td>
                <td>2</td>
                <td><p>Approver has approved the issue.</p></td>
              </tr>
            
              <tr>
                <td>REJECTED</td>
                <td>3</td>
                <td><p>Approver has rejected the issue.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/audit_log.proto">store/audit_log.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.AuditLog">AuditLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>parent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The project or workspace the audit log belongs to.
Formats:
- projects/{project}
- workspaces/{workspace} </p></td>
                </tr>
              
                <tr>
                  <td>method</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Example: /bytebase.v1.SQLService/Query </p></td>
                </tr>
              
                <tr>
                  <td>resource</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name.
Example: projects/{project} </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>severity</td>
                  <td><a href="#bytebase.store.AuditLog.Severity">AuditLog.Severity</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>request</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Marshalled request. </p></td>
                </tr>
              
                <tr>
                  <td>response</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Marshalled response.
Some fields are omitted because they are too large or contain sensitive information. </p></td>
                </tr>
              
                <tr>
                  <td>status</td>
                  <td><a href="#google.rpc.Status">google.rpc.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>latency</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The latency of the RPC. </p></td>
                </tr>
              
                <tr>
                  <td>service_data</td>
                  <td><a href="#google.protobuf.Any">google.protobuf.Any</a></td>
                  <td></td>
                  <td><p>The service-specific data about the request, response, and other activities. </p></td>
                </tr>
              
                <tr>
                  <td>request_metadata</td>
                  <td><a href="#bytebase.store.RequestMetadata">RequestMetadata</a></td>
                  <td></td>
                  <td><p>Metadata about the operation. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RequestMetadata">RequestMetadata</h3>
        <p>Metadata about the request.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>caller_ip</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The IP address of the caller. </p></td>
                </tr>
              
                <tr>
                  <td>caller_supplied_user_agent</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user agent of the caller.
This information is not authenticated and should be treated accordingly. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.AuditLog.Severity">AuditLog.Severity</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SEVERITY_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DEBUG</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INFO</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NOTICE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CRITICAL</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EMERGENCY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/changelog.proto">store/changelog.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ChangedResourceDatabase">ChangedResourceDatabase</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.store.ChangedResourceSchema">ChangedResourceSchema</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceFunction">ChangedResourceFunction</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of substrings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceProcedure">ChangedResourceProcedure</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of substrings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceSchema">ChangedResourceSchema</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.ChangedResourceTable">ChangedResourceTable</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.store.ChangedResourceView">ChangedResourceView</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.store.ChangedResourceFunction">ChangedResourceFunction</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.store.ChangedResourceProcedure">ChangedResourceProcedure</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceTable">ChangedResourceTable</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table_rows</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The estimated row count of the table. </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of substrings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResourceView">ChangedResourceView</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ranges</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The ranges of substrings correspond to the statements on the sheet. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangedResources">ChangedResources</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#bytebase.store.ChangedResourceDatabase">ChangedResourceDatabase</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ChangelogPayload">ChangelogPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task_run</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskruns/{taskrun} </p></td>
                </tr>
              
                <tr>
                  <td>issue</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/issues/{issue} </p></td>
                </tr>
              
                <tr>
                  <td>revision</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The revision uid.
optional </p></td>
                </tr>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.store.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sheet that holds the content.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ChangelogPayload.Type">ChangelogPayload.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>git_commit</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>dump_version</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Dump format version for drift detection reliability.
Engine-specific version stored when baseline/migration is created.
0 = legacy changelog (pre-versioning). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.ChangelogPayload.Type">ChangelogPayload.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BASELINE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MIGRATE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SDL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/database.proto">store/database.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.BoundingBox">BoundingBox</h3>
        <p>BoundingBox defines the bounding box for spatial indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>xmin</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ymin</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>xmax</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ymax</td>
                  <td><a href="#double">double</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.CheckConstraintMetadata">CheckConstraintMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the check constraint. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a check constraint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnCatalog">ColumnCatalog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the column. </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.ColumnCatalog.LabelsEntry">ColumnCatalog.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>The user labels for a column. </p></td>
                </tr>
              
                <tr>
                  <td>classification</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>object_schema</td>
                  <td><a href="#bytebase.store.ObjectSchema">ObjectSchema</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnCatalog.LabelsEntry">ColumnCatalog.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ColumnMetadata">ColumnMetadata</h3>
        <p>ColumnMetadata is the metadata for columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the column. </p></td>
                </tr>
              
                <tr>
                  <td>position</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The position is the position in columns. </p></td>
                </tr>
              
                <tr>
                  <td>default</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The default value of the column. </p></td>
                </tr>
              
                <tr>
                  <td>default_on_null</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Oracle specific metadata.
The default_on_null is the default on null of a column. </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a column.
For MySQL like databases, it&#39;s only supported for TIMESTAMP columns with
CURRENT_TIMESTAMP as on update value. </p></td>
                </tr>
              
                <tr>
                  <td>nullable</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The nullable is the nullable of a column. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of a column. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character_set is the character_set of a column. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a column. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a column. </p></td>
                </tr>
              
                <tr>
                  <td>generation</td>
                  <td><a href="#bytebase.store.GenerationMetadata">GenerationMetadata</a></td>
                  <td></td>
                  <td><p>The generation is for generated columns. </p></td>
                </tr>
              
                <tr>
                  <td>is_identity</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>identity_generation</td>
                  <td><a href="#bytebase.store.ColumnMetadata.IdentityGeneration">ColumnMetadata.IdentityGeneration</a></td>
                  <td></td>
                  <td><p>The identity_generation is for identity columns, PG only. </p></td>
                </tr>
              
                <tr>
                  <td>identity_seed</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The identity_seed is for identity columns, MSSQL only. </p></td>
                </tr>
              
                <tr>
                  <td>identity_increment</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The identity_increment is for identity columns, MSSQL only. </p></td>
                </tr>
              
                <tr>
                  <td>default_constraint_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The default_constraint_name is the name of the default constraint, MSSQL only.
In MSSQL, default values are implemented as named constraints. When modifying or
dropping a column&#39;s default value, you must reference the constraint by name.
This field stores the actual constraint name from the database.

Example: A column definition like:
  CREATE TABLE employees (
    status NVARCHAR(20) DEFAULT &#39;active&#39;
  )

Will create a constraint with an auto-generated name like &#39;DF__employees__statu__3B75D760&#39;
or a user-defined name if specified:
  ALTER TABLE employees ADD CONSTRAINT DF_employees_status DEFAULT &#39;active&#39; FOR status

To modify the default, you must first drop the existing constraint by name:
  ALTER TABLE employees DROP CONSTRAINT DF__employees__statu__3B75D760
  ALTER TABLE employees ADD CONSTRAINT DF_employees_status DEFAULT &#39;inactive&#39; FOR status

This field is populated when syncing from the database. When empty (e.g., when parsing
from SQL files), the system cannot automatically drop the constraint. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseConfig">DatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.store.SchemaCatalog">SchemaCatalog</a></td>
                  <td>repeated</td>
                  <td><p>The schema_configs is the list of configs for schemas in a database. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseMetadata">DatabaseMetadata</h3>
        <p>DatabaseMetadata is the metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.DatabaseMetadata.LabelsEntry">DatabaseMetadata.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>last_sync_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>backup_available</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>datashare</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>drifted</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The schema has drifted from the source of truth. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The version of database schema. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseMetadata.LabelsEntry">DatabaseMetadata.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DatabaseSchemaMetadata">DatabaseSchemaMetadata</h3>
        <p>DatabaseSchemaMetadata is the schema metadata for databases.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schemas</td>
                  <td><a href="#bytebase.store.SchemaMetadata">SchemaMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of schemas in a database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character set of the database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation of the database. </p></td>
                </tr>
              
                <tr>
                  <td>extensions</td>
                  <td><a href="#bytebase.store.ExtensionMetadata">ExtensionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of extensions in a database. </p></td>
                </tr>
              
                <tr>
                  <td>datashare</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The database belongs to a datashare. </p></td>
                </tr>
              
                <tr>
                  <td>service_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The service name of the database. It&#39;s an Oracle-specific concept. </p></td>
                </tr>
              
                <tr>
                  <td>linked_databases</td>
                  <td><a href="#bytebase.store.LinkedDatabaseMetadata">LinkedDatabaseMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>search_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The search_path is the search path of a PostgreSQL database. </p></td>
                </tr>
              
                <tr>
                  <td>event_triggers</td>
                  <td><a href="#bytebase.store.EventTriggerMetadata">EventTriggerMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of event triggers in a database (PostgreSQL specific).
Event triggers are database-level objects, not schema-scoped. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DependencyColumn">DependencyColumn</h3>
        <p>DependencyColumn is the metadata for dependency columns.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the schema of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table is the table of a reference column. </p></td>
                </tr>
              
                <tr>
                  <td>column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The column is the name of a reference column. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DependencyTable">DependencyTable</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema is the schema of a reference table. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table is the name of a reference table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DimensionalConfig">DimensionalConfig</h3>
        <p>DimensionalConfig defines dimensional and constraint parameters for spatial indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>dimensions</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Number of dimensions (2-4, default 2) </p></td>
                </tr>
              
                <tr>
                  <td>data_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Spatial data type
Examples: GEOMETRY, GEOGRAPHY, POINT, POLYGON, etc. </p></td>
                </tr>
              
                <tr>
                  <td>operator_class</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>PostgreSQL operator class
Examples: gist_geometry_ops_2d, gist_geometry_ops_nd, etc. </p></td>
                </tr>
              
                <tr>
                  <td>layer_gtype</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Oracle geometry type constraint
Examples: POINT, LINE, POLYGON, COLLECTION </p></td>
                </tr>
              
                <tr>
                  <td>parallel_build</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Parallel index creation </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnumTypeMetadata">EnumTypeMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the enum type. </p></td>
                </tr>
              
                <tr>
                  <td>values</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The enum values of the type. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EventMetadata">EventMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the event. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schedule of the event. </p></td>
                </tr>
              
                <tr>
                  <td>time_zone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The time zone of the event. </p></td>
                </tr>
              
                <tr>
                  <td>sql_mode</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>character_set_client</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>collation_connection</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EventTriggerMetadata">EventTriggerMetadata</h3>
        <p>EventTriggerMetadata is the metadata for PostgreSQL event triggers.</p><p>Event triggers are database-level objects that fire on DDL events.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the event trigger. </p></td>
                </tr>
              
                <tr>
                  <td>event</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The event type: DDL_COMMAND_START, DDL_COMMAND_END, SQL_DROP, TABLE_REWRITE. </p></td>
                </tr>
              
                <tr>
                  <td>tags</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The tags filter (e.g., [&#39;CREATE TABLE&#39;, &#39;DROP TABLE&#39;]). </p></td>
                </tr>
              
                <tr>
                  <td>function_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema of the function to execute. </p></td>
                </tr>
              
                <tr>
                  <td>function_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the function to execute. </p></td>
                </tr>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether the trigger is enabled. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The full CREATE EVENT TRIGGER definition from pg_get_event_trigger_def().
SDL output should prefer using this field. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment on the event trigger. </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Skip dump flag (for extension-owned triggers). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExcludeConstraintMetadata">ExcludeConstraintMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the EXCLUDE constraint. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the full EXCLUDE constraint definition including &#34;EXCLUDE&#34; keyword.
Example: &#34;EXCLUDE USING gist (room_id WITH =, during WITH &amp;&amp;)&#34; </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExtensionMetadata">ExtensionMetadata</h3>
        <p>ExtensionMetadata is the metadata for extensions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the extension. </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema where the extension is installed. However, the extension usage
is not limited to the schema. </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The version is the version of an extension. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The description is the description of an extension. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ExternalTableMetadata">ExternalTableMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the external table. </p></td>
                </tr>
              
                <tr>
                  <td>external_server_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_server_name is the name of the external server. </p></td>
                </tr>
              
                <tr>
                  <td>external_database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external_database_name is the name of the external database. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a foreign table. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ForeignKeyMetadata">ForeignKeyMetadata</h3>
        <p>ForeignKeyMetadata is the metadata for foreign keys.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The columns are the ordered referencing columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_schema is the referenced schema name of a foreign key.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The referenced_table is the referenced table name of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>referenced_columns</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The referenced_columns are the ordered referenced columns of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_delete</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_delete is the on delete action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>on_update</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The on_update is the on update action of a foreign key. </p></td>
                </tr>
              
                <tr>
                  <td>match_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The match_type is the match type of a foreign key.
The match_type is the PostgreSQL specific field.
It&#39;s empty string for other databases. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.FunctionMetadata">FunctionMetadata</h3>
        <p>FunctionMetadata is the metadata for functions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the function. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a function. </p></td>
                </tr>
              
                <tr>
                  <td>signature</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The signature is the name with the number and type of input arguments the
function takes. </p></td>
                </tr>
              
                <tr>
                  <td>character_set_client</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>MySQL specific metadata. </p></td>
                </tr>
              
                <tr>
                  <td>collation_connection</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_mode</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>dependency_tables</td>
                  <td><a href="#bytebase.store.DependencyTable">DependencyTable</a></td>
                  <td>repeated</td>
                  <td><p>The dependency_tables is the list of dependency tables of a function.
For PostgreSQL, it&#39;s the list of tables that the function depends on the return type definition. </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.GenerationMetadata">GenerationMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.GenerationMetadata.Type">GenerationMetadata.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.GridLevel">GridLevel</h3>
        <p>GridLevel defines a grid level for spatial tessellation.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>level</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>1-4 for SQL Server </p></td>
                </tr>
              
                <tr>
                  <td>density</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>LOW, MEDIUM, HIGH </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IndexMetadata">IndexMetadata</h3>
        <p>IndexMetadata is the metadata for indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the index. </p></td>
                </tr>
              
                <tr>
                  <td>expressions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The expressions are the ordered columns or expressions of an index.
This could refer to a column or an expression. </p></td>
                </tr>
              
                <tr>
                  <td>key_length</td>
                  <td><a href="#int64">int64</a></td>
                  <td>repeated</td>
                  <td><p>The ordered list of key lengths for the index.
If the key length is not specified, it is -1. </p></td>
                </tr>
              
                <tr>
                  <td>descending</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>The ordered list of descending flags for the index columns. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The type is the type of an index. </p></td>
                </tr>
              
                <tr>
                  <td>unique</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The unique is whether the index is unique. </p></td>
                </tr>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The primary is whether the index is a primary key index. </p></td>
                </tr>
              
                <tr>
                  <td>visible</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The visible is whether the index is visible. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of an index. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of an index. </p></td>
                </tr>
              
                <tr>
                  <td>parent_index_schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema name of the parent index. </p></td>
                </tr>
              
                <tr>
                  <td>parent_index_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The index name of the parent index. </p></td>
                </tr>
              
                <tr>
                  <td>granularity</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The number of granules in the block. It&#39;s a ClickHouse specific field. </p></td>
                </tr>
              
                <tr>
                  <td>is_constraint</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>It&#39;s a PostgreSQL specific field.
The unique constraint and unique index are not the same thing in PostgreSQL. </p></td>
                </tr>
              
                <tr>
                  <td>spatial_config</td>
                  <td><a href="#bytebase.store.SpatialIndexConfig">SpatialIndexConfig</a></td>
                  <td></td>
                  <td><p>Spatial index specific configuration </p></td>
                </tr>
              
                <tr>
                  <td>opclass_names</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>https://www.postgresql.org/docs/current/catalog-pg-opclass.html
Name of the operator class for each column. (PostgreSQL specific). </p></td>
                </tr>
              
                <tr>
                  <td>opclass_defaults</td>
                  <td><a href="#bool">bool</a></td>
                  <td>repeated</td>
                  <td><p>True if the operator class is the default. (PostgreSQL specific). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceRoleMetadata">InstanceRoleMetadata</h3>
        <p>InstanceRoleMetadata is the message for instance role.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role name. It&#39;s unique within the instance. </p></td>
                </tr>
              
                <tr>
                  <td>grant</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The grant display string on the instance. It&#39;s generated by database
engine. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.LinkedDatabaseMetadata">LinkedDatabaseMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaterializedViewMetadata">MaterializedViewMetadata</h3>
        <p>MaterializedViewMetadata is the metadata for materialized views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a view. </p></td>
                </tr>
              
                <tr>
                  <td>dependency_columns</td>
                  <td><a href="#bytebase.store.DependencyColumn">DependencyColumn</a></td>
                  <td>repeated</td>
                  <td><p>The list of dependency columns of the view. </p></td>
                </tr>
              
                <tr>
                  <td>triggers</td>
                  <td><a href="#bytebase.store.TriggerMetadata">TriggerMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The ordered list of columns in the materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>indexes</td>
                  <td><a href="#bytebase.store.IndexMetadata">IndexMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of indexes in the materialized view. </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ObjectSchema">ObjectSchema</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ObjectSchema.Type">ObjectSchema.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>struct_kind</td>
                  <td><a href="#bytebase.store.ObjectSchema.StructKind">ObjectSchema.StructKind</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>array_kind</td>
                  <td><a href="#bytebase.store.ObjectSchema.ArrayKind">ObjectSchema.ArrayKind</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ObjectSchema.ArrayKind">ObjectSchema.ArrayKind</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>kind</td>
                  <td><a href="#bytebase.store.ObjectSchema">ObjectSchema</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ObjectSchema.StructKind">ObjectSchema.StructKind</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>properties</td>
                  <td><a href="#bytebase.store.ObjectSchema.StructKind.PropertiesEntry">ObjectSchema.StructKind.PropertiesEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ObjectSchema.StructKind.PropertiesEntry">ObjectSchema.StructKind.PropertiesEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bytebase.store.ObjectSchema">ObjectSchema</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PackageMetadata">PackageMetadata</h3>
        <p>PackageMetadata is the metadata for packages.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the package. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a package. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ProcedureMetadata">ProcedureMetadata</h3>
        <p>ProcedureMetadata is the metadata for procedures.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the procedure. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a procedure. </p></td>
                </tr>
              
                <tr>
                  <td>signature</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The signature is the name with the number and type of input arguments the
function takes. </p></td>
                </tr>
              
                <tr>
                  <td>character_set_client</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>MySQL specific metadata. </p></td>
                </tr>
              
                <tr>
                  <td>collation_connection</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_mode</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RuleMetadata">RuleMetadata</h3>
        <p>RuleMetadata is the metadata for PostgreSQL rules.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the rule. </p></td>
                </tr>
              
                <tr>
                  <td>event</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The event type of the rule: SELECT, INSERT, UPDATE, or DELETE. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The WHERE condition of the rule (optional). </p></td>
                </tr>
              
                <tr>
                  <td>action</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The command(s) to execute when the rule fires. </p></td>
                </tr>
              
                <tr>
                  <td>is_instead</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The is_instead indicates whether this is an INSTEAD rule. </p></td>
                </tr>
              
                <tr>
                  <td>is_enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>The is_enabled indicates whether the rule is enabled. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The full CREATE RULE statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaCatalog">SchemaCatalog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.TableCatalog">TableCatalog</a></td>
                  <td>repeated</td>
                  <td><p>The table_configs is the list of configs for tables in a schema. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchemaMetadata">SchemaMetadata</h3>
        <p>SchemaMetadata is the metadata for schemas.</p><p>This is the concept of schema in Postgres, but it's a no-op for MySQL.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schema name.
It is an empty string for databases without such concept such as MySQL. </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.TableMetadata">TableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>external_tables</td>
                  <td><a href="#bytebase.store.ExternalTableMetadata">ExternalTableMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of external tables in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>views</td>
                  <td><a href="#bytebase.store.ViewMetadata">ViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of views in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>functions</td>
                  <td><a href="#bytebase.store.FunctionMetadata">FunctionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of functions in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>procedures</td>
                  <td><a href="#bytebase.store.ProcedureMetadata">ProcedureMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of procedures in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>streams</td>
                  <td><a href="#bytebase.store.StreamMetadata">StreamMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of streams in a schema, currently only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#bytebase.store.TaskMetadata">TaskMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of tasks in a schema, currently only used for Snowflake. </p></td>
                </tr>
              
                <tr>
                  <td>materialized_views</td>
                  <td><a href="#bytebase.store.MaterializedViewMetadata">MaterializedViewMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of materialized views in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>sequences</td>
                  <td><a href="#bytebase.store.SequenceMetadata">SequenceMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of sequences in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>packages</td>
                  <td><a href="#bytebase.store.PackageMetadata">PackageMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of packages in a schema. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>events</td>
                  <td><a href="#bytebase.store.EventMetadata">EventMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enum_types</td>
                  <td><a href="#bytebase.store.EnumTypeMetadata">EnumTypeMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SequenceMetadata">SequenceMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>data_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The data type of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>start</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The start value of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>min_value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The minimum value of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>max_value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The maximum value of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>increment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The increment value of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>cycle</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether the sequence cycles. </p></td>
                </tr>
              
                <tr>
                  <td>cache_size</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Cache size of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>last_value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The last value of a sequence. </p></td>
                </tr>
              
                <tr>
                  <td>owner_table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table that owns the sequence. </p></td>
                </tr>
              
                <tr>
                  <td>owner_column</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The column that owns the sequence. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SpatialIndexConfig">SpatialIndexConfig</h3>
        <p>SpatialIndexConfig is the configuration for spatial indexes across different database engines.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>method</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Index method/type (database-specific)
Examples: &#34;SPATIAL&#34; (MySQL/SQL Server), &#34;GIST&#34;/&#34;SPGIST&#34; (PostgreSQL), &#34;MDSYS.SPATIAL_INDEX_V2&#34; (Oracle) </p></td>
                </tr>
              
                <tr>
                  <td>tessellation</td>
                  <td><a href="#bytebase.store.TessellationConfig">TessellationConfig</a></td>
                  <td></td>
                  <td><p>Tessellation configuration (primarily SQL Server) </p></td>
                </tr>
              
                <tr>
                  <td>storage</td>
                  <td><a href="#bytebase.store.StorageConfig">StorageConfig</a></td>
                  <td></td>
                  <td><p>Storage and performance parameters </p></td>
                </tr>
              
                <tr>
                  <td>dimensional</td>
                  <td><a href="#bytebase.store.DimensionalConfig">DimensionalConfig</a></td>
                  <td></td>
                  <td><p>Dimensional and constraint parameters </p></td>
                </tr>
              
                <tr>
                  <td>engine_specific</td>
                  <td><a href="#bytebase.store.SpatialIndexConfig.EngineSpecificEntry">SpatialIndexConfig.EngineSpecificEntry</a></td>
                  <td>repeated</td>
                  <td><p>Database-specific parameters (stored as key-value pairs for extensibility) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SpatialIndexConfig.EngineSpecificEntry">SpatialIndexConfig.EngineSpecificEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.StorageConfig">StorageConfig</h3>
        <p>StorageConfig defines storage and performance parameters for spatial indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>fillfactor</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>PostgreSQL parameters

10-100 </p></td>
                </tr>
              
                <tr>
                  <td>buffering</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>auto, on, off </p></td>
                </tr>
              
                <tr>
                  <td>tablespace</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Oracle parameters </p></td>
                </tr>
              
                <tr>
                  <td>work_tablespace</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sdo_level</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>commit_interval</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>pad_index</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>SQL Server parameters </p></td>
                </tr>
              
                <tr>
                  <td>sort_in_tempdb</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>ON, OFF </p></td>
                </tr>
              
                <tr>
                  <td>drop_existing</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>online</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>allow_row_locks</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>allow_page_locks</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>maxdop</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_compression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>NONE, ROW, PAGE </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.StreamMetadata">StreamMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>table_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The table_name is the name of the table/view that the stream is created on. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.StreamMetadata.Type">StreamMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>stale</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Indicates whether the stream was last read before the `stale_after` time. </p></td>
                </tr>
              
                <tr>
                  <td>mode</td>
                  <td><a href="#bytebase.store.StreamMetadata.Mode">StreamMetadata.Mode</a></td>
                  <td></td>
                  <td><p>The mode of the stream. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the stream. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TableCatalog">TableCatalog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the table. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnCatalog">ColumnCatalog</a></td>
                  <td>repeated</td>
                  <td><p>The column_configs is the ordered list of configs for columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>object_schema</td>
                  <td><a href="#bytebase.store.ObjectSchema">ObjectSchema</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>classification</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TableMetadata">TableMetadata</h3>
        <p>TableMetadata is the metadata for tables.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the table. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The columns is the ordered list of columns in a table. </p></td>
                </tr>
              
                <tr>
                  <td>indexes</td>
                  <td><a href="#bytebase.store.IndexMetadata">IndexMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The indexes is the list of indexes in a table. </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The engine is the engine of a table. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The collation is the collation of a table. </p></td>
                </tr>
              
                <tr>
                  <td>charset</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The character set of the table. </p></td>
                </tr>
              
                <tr>
                  <td>row_count</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The row_count is the estimated number of rows of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_size is the estimated data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>index_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The index_size is the estimated index size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>data_free</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The data_free is the estimated free data size of a table. </p></td>
                </tr>
              
                <tr>
                  <td>create_options</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The create_options is the create option of a table. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a table. </p></td>
                </tr>
              
                <tr>
                  <td>foreign_keys</td>
                  <td><a href="#bytebase.store.ForeignKeyMetadata">ForeignKeyMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The foreign_keys is the list of foreign keys in a table. </p></td>
                </tr>
              
                <tr>
                  <td>partitions</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The partitions is the list of partitions in a table. </p></td>
                </tr>
              
                <tr>
                  <td>check_constraints</td>
                  <td><a href="#bytebase.store.CheckConstraintMetadata">CheckConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The check_constraints is the list of check constraints in a table. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sorting_keys</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The sorting_keys is a tuple of column names or arbitrary expressions. ClickHouse specific field.
Reference: https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#order_by </p></td>
                </tr>
              
                <tr>
                  <td>triggers</td>
                  <td><a href="#bytebase.store.TriggerMetadata">TriggerMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.RuleMetadata">RuleMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The rules is the list of rules in a table (PostgreSQL specific). </p></td>
                </tr>
              
                <tr>
                  <td>sharding_info</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>https://docs.pingcap.com/tidb/stable/information-schema-tables/ </p></td>
                </tr>
              
                <tr>
                  <td>primary_key_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>https://docs.pingcap.com/tidb/stable/clustered-indexes/#clustered-indexes
CLUSTERED or NONCLUSTERED. </p></td>
                </tr>
              
                <tr>
                  <td>exclude_constraints</td>
                  <td><a href="#bytebase.store.ExcludeConstraintMetadata">ExcludeConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The exclude_constraints is the list of EXCLUDE constraints in a table (PostgreSQL specific). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TablePartitionMetadata">TablePartitionMetadata</h3>
        <p>TablePartitionMetadata is the metadata for table partitions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the table partition. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata.Type">TablePartitionMetadata.Type</a></td>
                  <td></td>
                  <td><p>The type of a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>expression</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The expression is the expression of a table partition.
For PostgreSQL, the expression is the text of {FOR VALUES
partition_bound_spec}, see
https://www.postgresql.org/docs/current/sql-createtable.html. For MySQL,
the expression is the `expr` or `column_list` of the following syntax.
PARTITION BY
   { [LINEAR] HASH(expr)
   | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
   | RANGE{(expr) | COLUMNS(column_list)}
   | LIST{(expr) | COLUMNS(column_list)} }. </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The value is the value of a table partition.
For MySQL, the value is for RANGE and LIST partition types,
- For a RANGE partition, it contains the value set in the partition&#39;s
VALUES LESS THAN clause, which can be either an integer or MAXVALUE.
- For a LIST partition, this column contains the values defined in the
partition&#39;s VALUES IN clause, which is a list of comma-separated integer
values.
- For others, it&#39;s an empty string. </p></td>
                </tr>
              
                <tr>
                  <td>use_default</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The use_default is whether the users use the default partition, it stores
the different value for different database engines. For MySQL, it&#39;s [INT]
type, 0 means not use default partition, otherwise, it&#39;s equals to number
in syntax [SUB]PARTITION {number}. </p></td>
                </tr>
              
                <tr>
                  <td>subpartitions</td>
                  <td><a href="#bytebase.store.TablePartitionMetadata">TablePartitionMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The subpartitions is the list of subpartitions in a table partition. </p></td>
                </tr>
              
                <tr>
                  <td>indexes</td>
                  <td><a href="#bytebase.store.IndexMetadata">IndexMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>check_constraints</td>
                  <td><a href="#bytebase.store.CheckConstraintMetadata">CheckConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>exclude_constraints</td>
                  <td><a href="#bytebase.store.ExcludeConstraintMetadata">ExcludeConstraintMetadata</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskMetadata">TaskMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the task. </p></td>
                </tr>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The Snowflake-generated ID of the task.
Example: 01ad32a0-1bb6-5e93-0000-000000000001. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The owner of the task. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment of the task. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The warehouse of the task. </p></td>
                </tr>
              
                <tr>
                  <td>schedule</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The schedule interval of the task. </p></td>
                </tr>
              
                <tr>
                  <td>predecessors</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The predecessor tasks of the task. </p></td>
                </tr>
              
                <tr>
                  <td>state</td>
                  <td><a href="#bytebase.store.TaskMetadata.State">TaskMetadata.State</a></td>
                  <td></td>
                  <td><p>The state of the task. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The condition of the task. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition of the task. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TessellationConfig">TessellationConfig</h3>
        <p>TessellationConfig defines tessellation parameters for spatial indexes.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>scheme</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Tessellation scheme
Examples: GEOMETRY_GRID, GEOGRAPHY_GRID, GEOMETRY_AUTO_GRID, GEOGRAPHY_AUTO_GRID </p></td>
                </tr>
              
                <tr>
                  <td>bounding_box</td>
                  <td><a href="#bytebase.store.BoundingBox">BoundingBox</a></td>
                  <td></td>
                  <td><p>Bounding box for GEOMETRY indexes (SQL Server) </p></td>
                </tr>
              
                <tr>
                  <td>grid_levels</td>
                  <td><a href="#bytebase.store.GridLevel">GridLevel</a></td>
                  <td>repeated</td>
                  <td><p>Grid level configuration (SQL Server) </p></td>
                </tr>
              
                <tr>
                  <td>cells_per_object</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Cells per object (SQL Server) </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TriggerMetadata">TriggerMetadata</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the trigger. </p></td>
                </tr>
              
                <tr>
                  <td>event</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The event that triggers this action, such as INSERT, UPDATE, DELETE, or TRUNCATE. </p></td>
                </tr>
              
                <tr>
                  <td>timing</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The timing of when the trigger fires, such as BEFORE or AFTER. </p></td>
                </tr>
              
                <tr>
                  <td>body</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The body of the trigger. </p></td>
                </tr>
              
                <tr>
                  <td>sql_mode</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>character_set_client</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>collation_connection</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ViewMetadata">ViewMetadata</h3>
        <p>ViewMetadata is the metadata for views.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the view. </p></td>
                </tr>
              
                <tr>
                  <td>definition</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The definition is the definition of a view. </p></td>
                </tr>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The comment is the comment of a view. </p></td>
                </tr>
              
                <tr>
                  <td>dependency_columns</td>
                  <td><a href="#bytebase.store.DependencyColumn">DependencyColumn</a></td>
                  <td>repeated</td>
                  <td><p>The list of dependency columns of a view. </p></td>
                </tr>
              
                <tr>
                  <td>columns</td>
                  <td><a href="#bytebase.store.ColumnMetadata">ColumnMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The ordered list of columns in the view. </p></td>
                </tr>
              
                <tr>
                  <td>triggers</td>
                  <td><a href="#bytebase.store.TriggerMetadata">TriggerMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The list of triggers in the view. </p></td>
                </tr>
              
                <tr>
                  <td>skip_dump</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.RuleMetadata">RuleMetadata</a></td>
                  <td>repeated</td>
                  <td><p>The rules is the list of rules in a view (PostgreSQL specific). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.ColumnMetadata.IdentityGeneration">ColumnMetadata.IdentityGeneration</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>IDENTITY_GENERATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALWAYS</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BY_DEFAULT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.GenerationMetadata.Type">GenerationMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_VIRTUAL</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_STORED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ObjectSchema.Type">ObjectSchema.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STRING</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NUMBER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BOOLEAN</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OBJECT</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ARRAY</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.StreamMetadata.Mode">StreamMetadata.Mode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_DEFAULT</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_APPEND_ONLY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MODE_INSERT_ONLY</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.StreamMetadata.Type">StreamMetadata.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TYPE_DELTA</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TablePartitionMetadata.Type">TablePartitionMetadata.Type</h3>
        <p>The type is the type of a table partition. Some database engines may not</p><p>support all types. Only available for the following database engines now:</p><p>MySQL: RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, LINEAR HASH, KEY,</p><p>LINEAR_KEY</p><p>(https://dev.mysql.com/doc/refman/8.0/en/partitioning-types.html) TiDB:</p><p>RANGE, RANGE COLUMNS, LIST, LIST COLUMNS, HASH, KEY PostgreSQL: RANGE,</p><p>LIST, HASH (https://www.postgresql.org/docs/current/ddl-partitioning.html)</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RANGE_COLUMNS</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LIST_COLUMNS</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>HASH</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_HASH</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>KEY</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LINEAR_KEY</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskMetadata.State">TaskMetadata.State</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_STARTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATE_SUSPENDED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/export_archive.proto">store/export_archive.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ExportArchivePayload">ExportArchivePayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>file_format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The exported file format. e.g. JSON, CSV, SQL </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/group.proto">store/group.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.GroupMember">GroupMember</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who belongs to this group.

Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>role</td>
                  <td><a href="#bytebase.store.GroupMember.Role">GroupMember.Role</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.GroupPayload">GroupPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>members</td>
                  <td><a href="#bytebase.store.GroupMember">GroupMember</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The source indicates where the group comes from. For now we support Entra ID SCIM sync, so the source could be Entra ID. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.GroupMember.Role">GroupMember.Role</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ROLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OWNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MEMBER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/idp.proto">store/idp.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.FieldMapping">FieldMapping</h3>
        <p>FieldMapping saves the field names from user info API of identity provider.</p><p>As we save all raw json string of user info response data into `principal.idp_user_info`,</p><p>we can extract the relevant data based with `FieldMapping`.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identifier</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Identifier is the field name of the unique identifier in 3rd-party idp user info. Required. </p></td>
                </tr>
              
                <tr>
                  <td>display_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>DisplayName is the field name of display name in 3rd-party idp user info. Optional. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Phone is the field name of primary phone in 3rd-party idp user info. Optional. </p></td>
                </tr>
              
                <tr>
                  <td>groups</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Groups is the field name of groups in 3rd-party idp user info. Optional.
Mainly used for OIDC: https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/ </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IdentityProviderConfig">IdentityProviderConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>oauth2_config</td>
                  <td><a href="#bytebase.store.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>oidc_config</td>
                  <td><a href="#bytebase.store.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ldap_config</td>
                  <td><a href="#bytebase.store.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IdentityProviderUserInfo">IdentityProviderUserInfo</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>identifier</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Identifier is the value of the unique identifier in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>display_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>DisplayName is the value of display name in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>phone</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Phone is the value of primary phone in 3rd-party idp user info. </p></td>
                </tr>
              
                <tr>
                  <td>groups</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Groups is the value of groups in 3rd-party idp user info.
Mainly used for OIDC: https://developer.okta.com/docs/guides/customize-tokens-groups-claim/main/ </p></td>
                </tr>
              
                <tr>
                  <td>has_groups</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.LDAPIdentityProviderConfig">LDAPIdentityProviderConfig</h3>
        <p>LDAPIdentityProviderConfig is the structure for LDAP identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Host is the hostname or IP address of the LDAP server, e.g.
&#34;ldap.example.com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Port is the port number of the LDAP server, e.g. 389. When not set, the
default port of the corresponding security protocol will be used, i.e. 389
for StartTLS and 636 for LDAPS. </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>SkipTLSVerify controls whether to skip TLS certificate verification. </p></td>
                </tr>
              
                <tr>
                  <td>bind_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindDN is the DN of the user to bind as a service account to perform
search requests. </p></td>
                </tr>
              
                <tr>
                  <td>bind_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BindPassword is the password of the user to bind as a service account. </p></td>
                </tr>
              
                <tr>
                  <td>base_dn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>BaseDN is the base DN to search for users, e.g. &#34;ou=users,dc=example,dc=com&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>user_filter</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>UserFilter is the filter to search for users, e.g. &#34;(uid=%s)&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>security_protocol</td>
                  <td><a href="#bytebase.store.LDAPIdentityProviderConfig.SecurityProtocol">LDAPIdentityProviderConfig.SecurityProtocol</a></td>
                  <td></td>
                  <td><p>SecurityProtocol is the security protocol to be used for establishing
connections with the LDAP server. </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p>FieldMapping is the mapping of the user attributes returned by the LDAP
server. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.OAuth2IdentityProviderConfig">OAuth2IdentityProviderConfig</h3>
        <p>OAuth2IdentityProviderConfig is the structure for OAuth2 identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>auth_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>user_info_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>scopes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.OIDCIdentityProviderConfig">OIDCIdentityProviderConfig</h3>
        <p>OIDCIdentityProviderConfig is the structure for OIDC identity provider config.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issuer</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>field_mapping</td>
                  <td><a href="#bytebase.store.FieldMapping">FieldMapping</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>skip_tls_verify</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_style</td>
                  <td><a href="#bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>scopes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.IdentityProviderType">IdentityProviderType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>IDENTITY_PROVIDER_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OAUTH2</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OIDC</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>LDAP</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.LDAPIdentityProviderConfig.SecurityProtocol">LDAPIdentityProviderConfig.SecurityProtocol</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SECURITY_PROTOCOL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>START_TLS</td>
                <td>1</td>
                <td><p>StartTLS is the security protocol that starts with an unencrypted connection and then upgrades to TLS.</p></td>
              </tr>
            
              <tr>
                <td>LDAPS</td>
                <td>2</td>
                <td><p>LDAPS is the security protocol that uses TLS from the beginning.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.OAuth2AuthStyle">OAuth2AuthStyle</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>OAUTH2_AUTH_STYLE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>IN_PARAMS</td>
                <td>1</td>
                <td><p>IN_PARAMS sends the &#34;client_id&#34; and &#34;client_secret&#34; in the POST body
as application/x-www-form-urlencoded parameters.</p></td>
              </tr>
            
              <tr>
                <td>IN_HEADER</td>
                <td>2</td>
                <td><p>IN_HEADER sends the client_id and client_secret using HTTP Basic Authorization.
This is an optional style described in the OAuth2 RFC 6749 section 2.3.1.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/instance.proto">store/instance.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.DataSource">DataSource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.DataSourceType">DataSourceType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>use_ssl</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Use SSL to connect to the data source. By default, we use the system&#39;s SSL configuration. </p></td>
                </tr>
              
                <tr>
                  <td>ssl_ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_ssl_ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssl_cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_ssl_cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssl_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_ssl_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>verify_tls_certificate</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>verify_tls_certificate enables TLS certificate verification for SSL connections.
Default is false (no verification) for backward compatibility.
Set to true for secure connections (recommended for production).
Only set to false for development or when certificates cannot be properly
validated (e.g., self-signed certs, VPN environments). </p></td>
                </tr>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>srv</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>srv, authentication_database, and replica_set are used for MongoDB.
srv is a boolean flag that indicates whether the host is a DNS SRV record. </p></td>
                </tr>
              
                <tr>
                  <td>authentication_database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>authentication_database is the database name to authenticate against, which stores the user credentials. </p></td>
                </tr>
              
                <tr>
                  <td>replica_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>replica_set is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>sid</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>sid and service_name are used for Oracle. </p></td>
                </tr>
              
                <tr>
                  <td>service_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssh_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>SSH related
The hostname of the SSH server agent. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The port of the SSH server agent. It&#39;s 22 typically. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user to login the server. </p></td>
                </tr>
              
                <tr>
                  <td>ssh_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The password to login the server. If it&#39;s empty string, no password is required. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_ssh_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ssh_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The private key to login the server. If it&#39;s empty string, we will use the system default private key from os.Getenv(&#34;SSH_AUTH_SOCK&#34;). </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_ssh_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>PKCS#8 private key in PEM format. If it&#39;s empty string, no private key is required.
Used for authentication when connecting to the data source. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_authentication_private_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication_private_key_passphrase</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Passphrase for the encrypted PKCS#8 private key. Only used when the private key is encrypted. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_authentication_private_key_passphrase</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>external_secret</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret">DataSourceExternalSecret</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>authentication_type</td>
                  <td><a href="#bytebase.store.DataSource.AuthenticationType">DataSource.AuthenticationType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>azure_credential</td>
                  <td><a href="#bytebase.store.DataSource.AzureCredential">DataSource.AzureCredential</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>aws_credential</td>
                  <td><a href="#bytebase.store.DataSource.AWSCredential">DataSource.AWSCredential</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>gcp_credential</td>
                  <td><a href="#bytebase.store.DataSource.GCPCredential">DataSource.GCPCredential</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sasl_config</td>
                  <td><a href="#bytebase.store.SASLConfig">SASLConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>additional_addresses</td>
                  <td><a href="#bytebase.store.DataSource.Address">DataSource.Address</a></td>
                  <td>repeated</td>
                  <td><p>additional_addresses is used for MongoDB replica set. </p></td>
                </tr>
              
                <tr>
                  <td>direct_connection</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>direct_connection is used for MongoDB to dispatch all the operations to the node specified in the connection string. </p></td>
                </tr>
              
                <tr>
                  <td>region</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Region is the location of the database, used for AWS RDS. For example, us-east-1. </p></td>
                </tr>
              
                <tr>
                  <td>warehouse_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>warehouse_id is used by Databricks. </p></td>
                </tr>
              
                <tr>
                  <td>master_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_name is the master name used by connecting redis-master via redis sentinel. </p></td>
                </tr>
              
                <tr>
                  <td>master_username</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>master_username and master_obfuscated_password are master credentials used by redis sentinel mode. </p></td>
                </tr>
              
                <tr>
                  <td>master_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_master_password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>redis_type</td>
                  <td><a href="#bytebase.store.DataSource.RedisType">DataSource.RedisType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>cluster</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Cluster is the cluster name for the data source. Used by CockroachDB. </p></td>
                </tr>
              
                <tr>
                  <td>extra_connection_parameters</td>
                  <td><a href="#bytebase.store.DataSource.ExtraConnectionParametersEntry">DataSource.ExtraConnectionParametersEntry</a></td>
                  <td>repeated</td>
                  <td><p>Extra connection parameters for the database connection.
For PostgreSQL HA, this can be used to set target_session_attrs=read-write </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSource.AWSCredential">DataSource.AWSCredential</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>access_key_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_access_key_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret_access_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_secret_access_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>session_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_session_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>role_arn</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>ARN of IAM role to assume for cross-account access.
See: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html </p></td>
                </tr>
              
                <tr>
                  <td>external_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Optional external ID for additional security when assuming role.
See: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSource.Address">DataSource.Address</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSource.AzureCredential">DataSource.AzureCredential</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tenant_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSource.ExtraConnectionParametersEntry">DataSource.ExtraConnectionParametersEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSource.GCPCredential">DataSource.GCPCredential</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceExternalSecret">DataSourceExternalSecret</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>secret_type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>auth_type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_role</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>engine name is the name for secret engine. </p></td>
                </tr>
              
                <tr>
                  <td>secret_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the secret name in the engine to store the password. </p></td>
                </tr>
              
                <tr>
                  <td>password_key_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the key name for the password. </p></td>
                </tr>
              
                <tr>
                  <td>skip_vault_tls_verification</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>TLS configuration for connecting to Vault server.
These fields are separate from the database TLS configuration in DataSource.
skip_vault_tls_verification disables TLS certificate verification for Vault connections.
Default is false (verification enabled) for security.
Only set to true for development or when certificates cannot be properly validated. </p></td>
                </tr>
              
                <tr>
                  <td>vault_ssl_ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>CA certificate for Vault server verification. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_vault_ssl_ca</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vault_ssl_cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Client certificate for mutual TLS authentication with Vault. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_vault_ssl_cert</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vault_ssl_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Client private key for mutual TLS authentication with Vault. </p></td>
                </tr>
              
                <tr>
                  <td>obfuscated_vault_ssl_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceExternalSecret.AppRoleAuthOption">DataSourceExternalSecret.AppRoleAuthOption</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The secret ID for the role without TTL. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>mount_path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The path where the approle auth method is mounted. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Instance">Instance</h3>
        <p>Instance is the proto for instances.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>activation</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>external_link</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>data_sources</td>
                  <td><a href="#bytebase.store.DataSource">DataSource</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sync_interval</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The interval between automatic instance synchronizations. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_connections</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of connections.
The default is 10 if the value is unset or zero. </p></td>
                </tr>
              
                <tr>
                  <td>sync_databases</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Enable sync for the following databases.
Default empty, means sync all schemas &amp; databases. </p></td>
                </tr>
              
                <tr>
                  <td>mysql_lower_case_table_names</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The lower_case_table_names config for MySQL instances.
It is used to determine whether the table names and database names are case sensitive. </p></td>
                </tr>
              
                <tr>
                  <td>last_sync_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#bytebase.store.InstanceRole">InstanceRole</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.Instance.LabelsEntry">Instance.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>Labels are key-value pairs that can be attached to the instance.
For example, { &#34;org_group&#34;: &#34;infrastructure&#34;, &#34;environment&#34;: &#34;production&#34; } </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Instance.LabelsEntry">Instance.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.InstanceRole">InstanceRole</h3>
        <p>InstanceRole is the API message for instance role.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role name. </p></td>
                </tr>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p>The connection count limit for this role. </p></td>
                </tr>
              
                <tr>
                  <td>valid_until</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The expiration for the role&#39;s password. </p></td>
                </tr>
              
                <tr>
                  <td>attribute</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The role attribute.
For PostgreSQL, it contains super_user, no_inherit, create_role, create_db, can_login, replication and bypass_rls. Docs: https://www.postgresql.org/docs/current/role-attributes.html
For MySQL, it is the global privileges as GRANT statements, which means it only contains &#34;GRANT ... ON *.* TO ...&#34;. Docs: https://dev.mysql.com/doc/refman/8.0/en/grant.html </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.KerberosConfig">KerberosConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>primary</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>instance</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>realm</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>keytab</td>
                  <td><a href="#bytes">bytes</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_host</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_port</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>kdc_transport_protocol</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SASLConfig">SASLConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>krb_config</td>
                  <td><a href="#bytebase.store.KerberosConfig">KerberosConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.DataSource.AuthenticationType">DataSource.AuthenticationType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTHENTICATION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PASSWORD</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GOOGLE_CLOUD_SQL_IAM</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AWS_RDS_IAM</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AZURE_IAM</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSource.RedisType">DataSource.RedisType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>REDIS_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STANDALONE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SENTINEL</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLUSTER</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceExternalSecret.AppRoleAuthOption.SecretType">DataSourceExternalSecret.AppRoleAuthOption.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PLAIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceExternalSecret.AuthType">DataSourceExternalSecret.AuthType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>AUTH_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TOKEN</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/token</p></td>
              </tr>
            
              <tr>
                <td>VAULT_APP_ROLE</td>
                <td>2</td>
                <td><p>ref: https://developer.hashicorp.com/vault/docs/auth/approle</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceExternalSecret.SecretType">DataSourceExternalSecret.SecretType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SECRET_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>VAULT_KV_V2</td>
                <td>1</td>
                <td><p>ref: https://developer.hashicorp.com/vault/api-docs/secret/kv/kv-v2</p></td>
              </tr>
            
              <tr>
                <td>AWS_SECRETS_MANAGER</td>
                <td>2</td>
                <td><p>ref: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html</p></td>
              </tr>
            
              <tr>
                <td>GCP_SECRET_MANAGER</td>
                <td>3</td>
                <td><p>ref: https://cloud.google.com/secret-manager/docs</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.DataSourceType">DataSourceType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATA_SOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ADMIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>READ_ONLY</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/instance_change_history.proto">store/instance_change_history.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.InstanceChangeHistoryPayload">InstanceChangeHistoryPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.store.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/issue.proto">store/issue.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.GrantRequest">GrantRequest</h3>
        <p>GrantRequest contains details for requesting database access permissions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role being requested for the user.
Format: roles/EXPORTER. </p></td>
                </tr>
              
                <tr>
                  <td>user</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The user who will receive the role.
Format: users/{userUID}. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>Optional conditional expression that limits when the grant applies. </p></td>
                </tr>
              
                <tr>
                  <td>expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>Duration after which the grant automatically expires. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Issue">Issue</h3>
        <p>Issue is the metadata for issues that track database operations and access requests.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>approval</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval">IssuePayloadApproval</a></td>
                  <td></td>
                  <td><p>Approval information for the issue workflow. </p></td>
                </tr>
              
                <tr>
                  <td>grant_request</td>
                  <td><a href="#bytebase.store.GrantRequest">GrantRequest</a></td>
                  <td></td>
                  <td><p>Access grant request details if this is a grant request issue. </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Labels attached to categorize and filter the issue. </p></td>
                </tr>
              
                <tr>
                  <td>risk_level</td>
                  <td><a href="#bytebase.store.RiskLevel">RiskLevel</a></td>
                  <td></td>
                  <td><p>Risk level for the issue, calculated from statement types. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Issue.Status">Issue.Status</h3>
        <p>Status represents the current state of the issue.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ISSUE_STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OPEN</td>
                <td>1</td>
                <td><p>Issue is open and pending action.</p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>2</td>
                <td><p>Issue has been completed successfully.</p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>3</td>
                <td><p>Issue was canceled and will not be completed.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.Issue.Type">Issue.Type</h3>
        <p>Type represents the category of issue.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ISSUE_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CHANGE</td>
                <td>1</td>
                <td><p>Issue for database schema or data changes.</p></td>
              </tr>
            
              <tr>
                <td>GRANT_REQUEST</td>
                <td>2</td>
                <td><p>Issue requesting database access permissions.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_EXPORT</td>
                <td>3</td>
                <td><p>Issue for exporting data from databases.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task_run.proto">store/task_run.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PriorBackupDetail">PriorBackupDetail</h3>
        <p>PriorBackupDetail contains information about automatic backups created before migration.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>items</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item">PriorBackupDetail.Item</a></td>
                  <td>repeated</td>
                  <td><p>List of backup operations performed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PriorBackupDetail.Item">PriorBackupDetail.Item</h3>
        <p>Item represents a single backup operation for a table.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>source_table</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The original table that was backed up. </p></td>
                </tr>
              
                <tr>
                  <td>target_table</td>
                  <td><a href="#bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</a></td>
                  <td></td>
                  <td><p>The backup table where data was copied. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>Starting position in SQL for this backup operation. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>Ending position in SQL for this backup operation. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PriorBackupDetail.Item.Table">PriorBackupDetail.Item.Table</h3>
        <p>Table identifies a database table.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The database containing the table.
Format: instances/{instance}/databases/{database} </p></td>
                </tr>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Schema name (for databases that support schemas). </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Table name. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchedulerInfo">SchedulerInfo</h3>
        <p>SchedulerInfo contains information about task scheduling and execution delays.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>report_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>Timestamp when the scheduler reported this information. </p></td>
                </tr>
              
                <tr>
                  <td>waiting_cause</td>
                  <td><a href="#bytebase.store.SchedulerInfo.WaitingCause">SchedulerInfo.WaitingCause</a></td>
                  <td></td>
                  <td><p>Reason why the task run is currently waiting. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SchedulerInfo.WaitingCause">SchedulerInfo.WaitingCause</h3>
        <p>WaitingCause indicates why a task run is waiting to execute.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>connection_limit</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Task is waiting due to database connection limit. </p></td>
                </tr>
              
                <tr>
                  <td>task_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>Task is waiting for another task to complete. </p></td>
                </tr>
              
                <tr>
                  <td>parallel_tasks_limit</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Task is waiting due to parallel execution limit. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRun">TaskRun</h3>
        <p>TaskRun represents an execution attempt of a task.</p>

        

        
      
        <h3 id="bytebase.store.TaskRunResult">TaskRunResult</h3>
        <p>TaskRunResult contains the outcome and metadata from a task run execution.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>detail</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Detailed execution information or error message. </p></td>
                </tr>
              
                <tr>
                  <td>changelog</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Resource name of the changelog entry created by this run.
Format: instances/{instance}/databases/{database}/changelogs/{changelog} </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Schema version after the migration was applied. </p></td>
                </tr>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>Starting position in the SQL statement where an error occurred. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>Ending position in the SQL statement where an error occurred. </p></td>
                </tr>
              
                <tr>
                  <td>export_archive_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>UID of the export archive generated for export tasks. </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_detail</td>
                  <td><a href="#bytebase.store.PriorBackupDetail">PriorBackupDetail</a></td>
                  <td></td>
                  <td><p>Backup details that can be used to rollback changes. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.TaskRun.Status">TaskRun.Status</h3>
        <p>Status represents the current execution state of a task run.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PENDING</td>
                <td>1</td>
                <td><p>Task run is queued and waiting to execute.</p></td>
              </tr>
            
              <tr>
                <td>RUNNING</td>
                <td>2</td>
                <td><p>Task run is currently executing.</p></td>
              </tr>
            
              <tr>
                <td>DONE</td>
                <td>3</td>
                <td><p>Task run completed successfully.</p></td>
              </tr>
            
              <tr>
                <td>FAILED</td>
                <td>4</td>
                <td><p>Task run encountered an error and failed.</p></td>
              </tr>
            
              <tr>
                <td>CANCELED</td>
                <td>5</td>
                <td><p>Task run was canceled by user or system.</p></td>
              </tr>
            
              <tr>
                <td>NOT_STARTED</td>
                <td>6</td>
                <td><p>Task run has not started yet.</p></td>
              </tr>
            
              <tr>
                <td>SKIPPED</td>
                <td>7</td>
                <td><p>Task run was skipped and will not execute.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/issue_comment.proto">store/issue_comment.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.IssueCommentPayload">IssueCommentPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>comment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>approval</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.Approval">IssueCommentPayload.Approval</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>issue_update</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.IssueUpdate">IssueCommentPayload.IssueUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>stage_end</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.StageEnd">IssueCommentPayload.StageEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_update</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskUpdate">IssueCommentPayload.TaskUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_prior_backup</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup">IssueCommentPayload.TaskPriorBackup</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.Approval">IssueCommentPayload.Approval</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.IssuePayloadApproval.Approver.Status">IssuePayloadApproval.Approver.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.IssueUpdate">IssueCommentPayload.IssueUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>from_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_title</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_description</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_status</td>
                  <td><a href="#bytebase.store.Issue.Status">Issue.Status</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.store.Issue.Status">Issue.Status</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>to_labels</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.StageEnd">IssueCommentPayload.StageEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>stage</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskPriorBackup">IssueCommentPayload.TaskPriorBackup</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>task</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>tables</td>
                  <td><a href="#bytebase.store.IssueCommentPayload.TaskPriorBackup.Table">IssueCommentPayload.TaskPriorBackup.Table</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>original_line</td>
                  <td><a href="#int32">int32</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskPriorBackup.Table">IssueCommentPayload.TaskPriorBackup.Table</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>schema</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IssueCommentPayload.TaskUpdate">IssueCommentPayload.TaskUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tasks</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>from_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>to_sheet</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>to_status</td>
                  <td><a href="#bytebase.store.TaskRun.Status">TaskRun.Status</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/plan.proto">store/plan.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PlanConfig">PlanConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>specs</td>
                  <td><a href="#bytebase.store.PlanConfig.Spec">PlanConfig.Spec</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>deployment</td>
                  <td><a href="#bytebase.store.PlanConfig.Deployment">PlanConfig.Deployment</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig">PlanConfig.ChangeDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>targets</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The list of targets.
Multi-database format: [instances/{instance-id}/databases/{database-name}].
Single database group format: [projects/{project}/databaseGroups/{databaseGroup}]. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>release</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the release.
Format: projects/{project}/releases/{release} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.Type">PlanConfig.ChangeDatabaseConfig.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ghost_flags</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry">PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enable_prior_backup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set, a backup of the modified data will be created automatically before any changes are applied. </p></td>
                </tr>
              
                <tr>
                  <td>enable_ghost</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to use gh-ost for online schema migration. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry">PlanConfig.ChangeDatabaseConfig.GhostFlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.CreateDatabaseConfig">PlanConfig.CreateDatabaseConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>target</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the instance on which the database is created.
Format: instances/{instance} </p></td>
                </tr>
              
                <tr>
                  <td>database</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The name of the database to create. </p></td>
                </tr>
              
                <tr>
                  <td>table</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>table is the name of the table, if it is not empty, Bytebase should create a table after creating the database.
For example, in MongoDB, it only creates the database when we first store data in that database. </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>character_set is the character set of the database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>collation is the collation of the database. </p></td>
                </tr>
              
                <tr>
                  <td>cluster</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>cluster is the cluster of the database. This is only applicable to ClickHouse for &#34;ON CLUSTER &lt;&lt;cluster&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>owner</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>owner is the owner of the database. This is only applicable to Postgres for &#34;WITH OWNER &lt;&lt;owner&gt;&gt;&#34;. </p></td>
                </tr>
              
                <tr>
                  <td>environment</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment resource.
Format: environments/prod where prod is the environment resource ID. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.Deployment">PlanConfig.Deployment</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environments</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The environments deploy order. </p></td>
                </tr>
              
                <tr>
                  <td>database_group_mappings</td>
                  <td><a href="#bytebase.store.PlanConfig.Deployment.DatabaseGroupMapping">PlanConfig.Deployment.DatabaseGroupMapping</a></td>
                  <td>repeated</td>
                  <td><p>The database group mapping. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.Deployment.DatabaseGroupMapping">PlanConfig.Deployment.DatabaseGroupMapping</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>database_group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/databaseGroups/{databaseGroup}. </p></td>
                </tr>
              
                <tr>
                  <td>databases</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Format: instances/{instance-id}/databases/{database-name}. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.ExportDataConfig">PlanConfig.ExportDataConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>targets</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The list of targets.
Multi-database format: [instances/{instance-id}/databases/{database-name}].
Single database group format: [projects/{project}/databaseGroups/{databaseGroup}]. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource name of the sheet.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>The format of the exported file. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p>The zip password provided by users.
Leave it empty if there is no need to encrypt the zip file. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanConfig.Spec">PlanConfig.Spec</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A UUID4 string that uniquely identifies the Spec. </p></td>
                </tr>
              
                <tr>
                  <td>create_database_config</td>
                  <td><a href="#bytebase.store.PlanConfig.CreateDatabaseConfig">PlanConfig.CreateDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>change_database_config</td>
                  <td><a href="#bytebase.store.PlanConfig.ChangeDatabaseConfig">PlanConfig.ChangeDatabaseConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>export_data_config</td>
                  <td><a href="#bytebase.store.PlanConfig.ExportDataConfig">PlanConfig.ExportDataConfig</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.PlanConfig.ChangeDatabaseConfig.Type">PlanConfig.ChangeDatabaseConfig.Type</h3>
        <p>Type is the database change type.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MIGRATE</td>
                <td>2</td>
                <td><p>Used for imperative schema migration including CREATE DATABASE.</p></td>
              </tr>
            
              <tr>
                <td>SDL</td>
                <td>3</td>
                <td><p>Used for state-based declarative schema migration including CREATE DATABASE.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/plan_check_run.proto">store/plan_check_run.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.PlanCheckRunConfig">PlanCheckRunConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sheet_uid</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>instance_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>ghost_flags</td>
                  <td><a href="#bytebase.store.PlanCheckRunConfig.GhostFlagsEntry">PlanCheckRunConfig.GhostFlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enable_prior_backup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If set, a backup of the modified data will be created automatically before any changes are applied. </p></td>
                </tr>
              
                <tr>
                  <td>enable_ghost</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to use gh-ost for online schema migration. </p></td>
                </tr>
              
                <tr>
                  <td>enable_sdl</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether this is a Schema Definition Language (SDL) change. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunConfig.GhostFlagsEntry">PlanCheckRunConfig.GhostFlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult">PlanCheckRunResult</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>results</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result">PlanCheckRunResult.Result</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result">PlanCheckRunResult.Result</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.Advice.Status">Advice.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>content</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>code</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_summary_report</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport">PlanCheckRunResult.Result.SqlSummaryReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>sql_review_report</td>
                  <td><a href="#bytebase.store.PlanCheckRunResult.Result.SqlReviewReport">PlanCheckRunResult.Result.SqlReviewReport</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result.SqlReviewReport">PlanCheckRunResult.Result.SqlReviewReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p>Position of the SQL statement. </p></td>
                </tr>
              
                <tr>
                  <td>end_position</td>
                  <td><a href="#bytebase.store.Position">Position</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.PlanCheckRunResult.Result.SqlSummaryReport">PlanCheckRunResult.Result.SqlSummaryReport</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>statement_types</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>statement_types are the types of statements found in the SQL. </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>changed_resources</td>
                  <td><a href="#bytebase.store.ChangedResources">ChangedResources</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/policy.proto">store/policy.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Binding">Binding</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>role</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The role that is assigned to the members.
Format: roles/{role} </p></td>
                </tr>
              
                <tr>
                  <td>members</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>Specifies the principals requesting access for a Bytebase resource.
For users, the member should be: users/{userUID}
For groups, the member should be: groups/{email} </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this binding.
If the condition evaluates to true, then this binding applies to the current request.
If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataSourceQueryPolicy">DataSourceQueryPolicy</h3>
        <p>DataSourceQueryPolicy is the policy configuration for running statements in the SQL editor.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>admin_data_source_restriction</td>
                  <td><a href="#bytebase.store.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>disallow_ddl</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disallow running DDL statements in the SQL editor. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_dml</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disallow running DML statements in the SQL editor. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnvironmentTierPolicy">EnvironmentTierPolicy</h3>
        <p>EnvironmentTierPolicy is the tier of an environment.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environment_tier</td>
                  <td><a href="#bytebase.store.EnvironmentTierPolicy.EnvironmentTier">EnvironmentTierPolicy.EnvironmentTier</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>color</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.IamPolicy">IamPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>bindings</td>
                  <td><a href="#bytebase.store.Binding">Binding</a></td>
                  <td>repeated</td>
                  <td><p>Collection of binding.
A binding binds one or more members or groups to a single role. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingExceptionPolicy">MaskingExceptionPolicy</h3>
        <p>MaskingExceptionPolicy is the allowlist of users who can access sensitive data.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>masking_exceptions</td>
                  <td><a href="#bytebase.store.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingExceptionPolicy.MaskingException">MaskingExceptionPolicy.MaskingException</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>action</td>
                  <td><a href="#bytebase.store.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</a></td>
                  <td></td>
                  <td><p>action is the action by which the user can access sensitive data. </p></td>
                </tr>
              
                <tr>
                  <td>member</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Member is the principal who binds to this exception policy instance.

Format: users/{userUID} or groups/{group email} </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p>The condition that is associated with this exception policy instance. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingRulePolicy">MaskingRulePolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.MaskingRulePolicy.MaskingRule">MaskingRulePolicy.MaskingRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>A unique identifier for a node in UUID format. </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>semantic_type</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Policy">Policy</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.QueryDataPolicy">QueryDataPolicy</h3>
        <p>QueryDataPolicy is the policy configuration for querying data.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>timeout</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The query timeout duration. </p></td>
                </tr>
              
                <tr>
                  <td>disable_export</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disable exporting data in the SQL editor. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_result_size</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p>The size limit in bytes.
The default value is 100MB, we will use the default value if the setting not exists, or the limit &lt;= 0. </p></td>
                </tr>
              
                <tr>
                  <td>maximum_result_rows</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The return rows limit.
The default value is -1, means no limit. </p></td>
                </tr>
              
                <tr>
                  <td>disable_copy_data</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disable copying data. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RolloutPolicy">RolloutPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>automatic</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>roles</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>checkers</td>
                  <td><a href="#bytebase.store.RolloutPolicy.Checkers">RolloutPolicy.Checkers</a></td>
                  <td></td>
                  <td><p>Checkers that must pass before rollout execution.
These checks are performed in UI workflows only. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RolloutPolicy.Checkers">RolloutPolicy.Checkers</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>required_issue_approval</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether issue approval is required before proceeding with rollout. </p></td>
                </tr>
              
                <tr>
                  <td>required_status_checks</td>
                  <td><a href="#bytebase.store.RolloutPolicy.Checkers.RequiredStatusChecks">RolloutPolicy.Checkers.RequiredStatusChecks</a></td>
                  <td></td>
                  <td><p>Status checks that must pass before rollout can be executed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.RolloutPolicy.Checkers.RequiredStatusChecks">RolloutPolicy.Checkers.RequiredStatusChecks</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>plan_check_enforcement</td>
                  <td><a href="#bytebase.store.RolloutPolicy.Checkers.PlanCheckEnforcement">RolloutPolicy.Checkers.PlanCheckEnforcement</a></td>
                  <td></td>
                  <td><p>Enforcement level for plan check results during rollout validation. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TagPolicy">TagPolicy</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tags</td>
                  <td><a href="#bytebase.store.TagPolicy.TagsEntry">TagPolicy.TagsEntry</a></td>
                  <td>repeated</td>
                  <td><p>tags is the key-value map for resources.
For example, the environment resource can have the SQL review config tag, such as &#34;bb.tag.review_config&#34;: &#34;reviewConfigs/{review config resource id}&#34;. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TagPolicy.TagsEntry">TagPolicy.TagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.DataSourceQueryPolicy.Restriction">DataSourceQueryPolicy.Restriction</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RESTRICTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>FALLBACK</td>
                <td>1</td>
                <td><p>Allow to query admin data sources when there is no read-only data source.</p></td>
              </tr>
            
              <tr>
                <td>DISALLOW</td>
                <td>2</td>
                <td><p>Disallow to query admin data sources.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.EnvironmentTierPolicy.EnvironmentTier">EnvironmentTierPolicy.EnvironmentTier</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ENVIRONMENT_TIER_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROTECTED</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>UNPROTECTED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.MaskingExceptionPolicy.MaskingException.Action">MaskingExceptionPolicy.MaskingException.Action</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ACTION_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>QUERY</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.Policy.Resource">Policy.Resource</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>RESOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PROJECT</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.Policy.Type">Policy.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ROLLOUT</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MASKING_EXCEPTION</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>QUERY_DATA</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>MASKING_RULE</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>IAM</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TAG</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATA_SOURCE_QUERY</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.RolloutPolicy.Checkers.PlanCheckEnforcement">RolloutPolicy.Checkers.PlanCheckEnforcement</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>PLAN_CHECK_ENFORCEMENT_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Allow rollout regardless of plan check results (no enforcement).</p></td>
              </tr>
            
              <tr>
                <td>ERROR_ONLY</td>
                <td>1</td>
                <td><p>Block rollout only when plan check finds errors.</p></td>
              </tr>
            
              <tr>
                <td>STRICT</td>
                <td>2</td>
                <td><p>Block rollout when plan check finds errors or warnings.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/project.proto">store/project.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Label">Label</h3>
        <p>Label represents a categorization tag that can be applied to issues.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The display text of the label. </p></td>
                </tr>
              
                <tr>
                  <td>color</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The color for the label in hex format (e.g., &#34;#FF0000&#34;). </p></td>
                </tr>
              
                <tr>
                  <td>group</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Optional group name for organizing related labels. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Project">Project</h3>
        <p>Project contains settings and configuration for a Bytebase project.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>issue_labels</td>
                  <td><a href="#bytebase.store.Label">Label</a></td>
                  <td>repeated</td>
                  <td><p>Available labels that can be applied to issues in this project. </p></td>
                </tr>
              
                <tr>
                  <td>force_issue_labels</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Force issue labels to be used when creating an issue. </p></td>
                </tr>
              
                <tr>
                  <td>allow_modify_statement</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Allow modifying statement after issue is created. </p></td>
                </tr>
              
                <tr>
                  <td>auto_resolve_issue</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Enable auto resolve issue. </p></td>
                </tr>
              
                <tr>
                  <td>enforce_issue_title</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Enforce issue title created by user instead of generated by Bytebase. </p></td>
                </tr>
              
                <tr>
                  <td>auto_enable_backup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to automatically enable backup. </p></td>
                </tr>
              
                <tr>
                  <td>skip_backup_errors</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to skip backup errors and continue the data migration. </p></td>
                </tr>
              
                <tr>
                  <td>postgres_database_tenant_mode</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to enable the database tenant mode for PostgreSQL.
If enabled, the issue will be created with the prepend &#34;set role &lt;db_owner&gt;&#34; statement. </p></td>
                </tr>
              
                <tr>
                  <td>allow_self_approval</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to allow the issue creator to self-approve the issue. </p></td>
                </tr>
              
                <tr>
                  <td>execution_retry_policy</td>
                  <td><a href="#bytebase.store.Project.ExecutionRetryPolicy">Project.ExecutionRetryPolicy</a></td>
                  <td></td>
                  <td><p>Configuration for automatic retry on task execution failures. </p></td>
                </tr>
              
                <tr>
                  <td>ci_sampling_size</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of databases to sample during CI data validation.
If not specified, sampling is disabled, resulting in a full validation. </p></td>
                </tr>
              
                <tr>
                  <td>parallel_tasks_per_rollout</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of parallel tasks to run during the rollout. </p></td>
                </tr>
              
                <tr>
                  <td>labels</td>
                  <td><a href="#bytebase.store.Project.LabelsEntry">Project.LabelsEntry</a></td>
                  <td>repeated</td>
                  <td><p>Labels are key-value pairs that can be attached to the project.
For example, { &#34;environment&#34;: &#34;production&#34;, &#34;team&#34;: &#34;backend&#34; } </p></td>
                </tr>
              
                <tr>
                  <td>enforce_sql_review</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to enforce SQL review checks to pass before issue creation.
If enabled, issues cannot be created when SQL review finds errors. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Project.ExecutionRetryPolicy">Project.ExecutionRetryPolicy</h3>
        <p>ExecutionRetryPolicy defines retry behavior for failed task executions.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>maximum_retries</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The maximum number of retry attempts for lock timeout errors. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Project.LabelsEntry">Project.LabelsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/project_webhook.proto">store/project_webhook.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Activity">Activity</h3>
        <p>Activity types for webhook notifications.</p>

        

        
      
        <h3 id="bytebase.store.ProjectWebhook">ProjectWebhook</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ProjectWebhook.Type">ProjectWebhook.Type</a></td>
                  <td></td>
                  <td><p>Webhook type. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Webhook title. </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Webhook URL. </p></td>
                </tr>
              
                <tr>
                  <td>activities</td>
                  <td><a href="#bytebase.store.Activity.Type">Activity.Type</a></td>
                  <td>repeated</td>
                  <td><p>List of activities that trigger this webhook. </p></td>
                </tr>
              
                <tr>
                  <td>direct_message</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>If direct_message is set, the notification is sent directly
to the persons and url will be ignored.
IM integration setting should be set for this function to work. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Activity.Type">Activity.Type</h3>
        <p>Activity type enumeration.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified type.</p></td>
              </tr>
            
              <tr>
                <td>NOTIFY_ISSUE_APPROVED</td>
                <td>23</td>
                <td><p>Notifications via webhooks.

NOTIFY_ISSUE_APPROVED represents the issue approved notification.</p></td>
              </tr>
            
              <tr>
                <td>NOTIFY_PIPELINE_ROLLOUT</td>
                <td>24</td>
                <td><p>NOTIFY_PIPELINE_ROLLOUT represents the pipeline rollout notification.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_CREATE</td>
                <td>1</td>
                <td><p>Issue related activity types.

ISSUE_CREATE represents creating an issue.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_COMMENT_CREATE</td>
                <td>2</td>
                <td><p>ISSUE_COMMENT_CREATE represents commenting on an issue.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_FIELD_UPDATE</td>
                <td>3</td>
                <td><p>ISSUE_FIELD_UPDATE represents updating the issue field, likes title, description, etc.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_STATUS_UPDATE</td>
                <td>4</td>
                <td><p>ISSUE_STATUS_UPDATE represents the issue status change, including OPEN, CLOSE, CANCEL for now.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_APPROVAL_NOTIFY</td>
                <td>21</td>
                <td><p>ISSUE_APPROVAL_NOTIFY is the type for notifying issue approval.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_PIPELINE_STAGE_STATUS_UPDATE</td>
                <td>5</td>
                <td><p>ISSUE_PIPELINE_STAGE_STATUS_UPDATE represents the pipeline stage status change, including BEGIN, END for now.</p></td>
              </tr>
            
              <tr>
                <td>ISSUE_PIPELINE_TASK_RUN_STATUS_UPDATE</td>
                <td>22</td>
                <td><p>ISSUE_PIPELINE_TASK_RUN_STATUS_UPDATE represents the pipeline task run status change, including PENDING, RUNNING, DONE, FAILED, CANCELED.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.ProjectWebhook.Type">ProjectWebhook.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified type.</p></td>
              </tr>
            
              <tr>
                <td>SLACK</td>
                <td>1</td>
                <td><p>Slack integration.</p></td>
              </tr>
            
              <tr>
                <td>DISCORD</td>
                <td>2</td>
                <td><p>Discord integration.</p></td>
              </tr>
            
              <tr>
                <td>TEAMS</td>
                <td>3</td>
                <td><p>Microsoft Teams integration.</p></td>
              </tr>
            
              <tr>
                <td>DINGTALK</td>
                <td>4</td>
                <td><p>DingTalk integration.</p></td>
              </tr>
            
              <tr>
                <td>FEISHU</td>
                <td>5</td>
                <td><p>Feishu integration.</p></td>
              </tr>
            
              <tr>
                <td>WECOM</td>
                <td>6</td>
                <td><p>WeCom (WeChat Work) integration.</p></td>
              </tr>
            
              <tr>
                <td>LARK</td>
                <td>8</td>
                <td><p>Lark integration.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/query_history.proto">store/query_history.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.QueryHistoryPayload">QueryHistoryPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/release.proto">store/release.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ReleasePayload">ReleasePayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>files</td>
                  <td><a href="#bytebase.store.ReleasePayload.File">ReleasePayload.File</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>vcs_source</td>
                  <td><a href="#bytebase.store.ReleasePayload.VCSSource">ReleasePayload.VCSSource</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ReleasePayload.File">ReleasePayload.File</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The unique identifier for the file. </p></td>
                </tr>
              
                <tr>
                  <td>path</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The path of the file, e.g., `2.2/V0001_create_table.sql`. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sheet that holds the content.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>sheet_sha256</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SHA256 hash value of the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.SchemaChangeType">SchemaChangeType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>enable_ghost</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to use gh-ost for online schema migration. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.ReleasePayload.VCSSource">ReleasePayload.VCSSource</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>vcs_type</td>
                  <td><a href="#bytebase.store.VCSType">VCSType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/review_config.proto">store/review_config.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.ReviewConfigPayload">ReviewConfigPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>sql_review_rules</td>
                  <td><a href="#bytebase.store.SQLReviewRule">SQLReviewRule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SQLReviewRule">SQLReviewRule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.SQLReviewRule.Type">SQLReviewRule.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.store.SQLReviewRule.Level">SQLReviewRule.Level</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>payload</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.SQLReviewRule.Level">SQLReviewRule.Level</h3>
        <p>The severity level for SQL review rules.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p>Unspecified level.</p></td>
              </tr>
            
              <tr>
                <td>ERROR</td>
                <td>1</td>
                <td><p>Rule violation is an error.</p></td>
              </tr>
            
              <tr>
                <td>WARNING</td>
                <td>2</td>
                <td><p>Rule violation is a warning.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SQLReviewRule.Type">SQLReviewRule.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENGINE_MYSQL_USE_INNODB</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_FULLY_QUALIFIED</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_TABLE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_COLUMN</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_INDEX_PK</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_INDEX_UK</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_INDEX_FK</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_INDEX_IDX</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_COLUMN_AUTO_INCREMENT</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_TABLE_NO_KEYWORD</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_IDENTIFIER_NO_KEYWORD</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>NAMING_IDENTIFIER_CASE</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_SELECT_NO_SELECT_ALL</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_REQUIRE_SELECT</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_REQUIRE_UPDATE_DELETE</td>
                <td>15</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_NO_LEADING_WILDCARD_LIKE</td>
                <td>16</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_ON_DEL_CASCADE</td>
                <td>17</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_RM_TBL_CASCADE</td>
                <td>18</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_COMMIT</td>
                <td>19</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_LIMIT</td>
                <td>20</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_ORDER_BY</td>
                <td>21</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_MERGE_ALTER_TABLE</td>
                <td>22</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_INSERT_ROW_LIMIT</td>
                <td>23</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_INSERT_MUST_SPECIFY_COLUMN</td>
                <td>24</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_INSERT_DISALLOW_ORDER_BY_RAND</td>
                <td>25</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_AFFECTED_ROW_LIMIT</td>
                <td>26</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DML_DRY_RUN</td>
                <td>27</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_ADD_COLUMN_WITH_DEFAULT</td>
                <td>28</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_ADD_CHECK_NOT_VALID</td>
                <td>29</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_ADD_FOREIGN_KEY_NOT_VALID</td>
                <td>30</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_ADD_NOT_NULL</td>
                <td>31</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_SELECT_FULL_TABLE_SCAN</td>
                <td>32</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_CREATE_SPECIFY_SCHEMA</td>
                <td>33</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_CHECK_SET_ROLE_VARIABLE</td>
                <td>34</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_USING_FILESORT</td>
                <td>35</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_USING_TEMPORARY</td>
                <td>36</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_NO_EQUAL_NULL</td>
                <td>37</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_DISALLOW_FUNCTIONS_AND_CALCULATIONS</td>
                <td>38</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_QUERY_MINIMUM_PLAN_LEVEL</td>
                <td>39</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_WHERE_MAXIMUM_LOGICAL_OPERATOR_COUNT</td>
                <td>40</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_MAXIMUM_LIMIT_VALUE</td>
                <td>41</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_MAXIMUM_JOIN_TABLE_COUNT</td>
                <td>42</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_MAXIMUM_STATEMENTS_IN_TRANSACTION</td>
                <td>43</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_JOIN_STRICT_COLUMN_ATTRS</td>
                <td>44</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_NON_TRANSACTIONAL</td>
                <td>45</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_ADD_COLUMN_WITHOUT_POSITION</td>
                <td>46</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_OFFLINE_DDL</td>
                <td>47</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_DISALLOW_CROSS_DB_QUERIES</td>
                <td>48</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_MAX_EXECUTION_TIME</td>
                <td>49</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_REQUIRE_ALGORITHM_OPTION</td>
                <td>50</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_REQUIRE_LOCK_OPTION</td>
                <td>51</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>STATEMENT_OBJECT_OWNER_CHECK</td>
                <td>52</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_REQUIRE_PK</td>
                <td>53</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_NO_FOREIGN_KEY</td>
                <td>54</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DROP_NAMING_CONVENTION</td>
                <td>55</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_COMMENT</td>
                <td>56</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DISALLOW_PARTITION</td>
                <td>57</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DISALLOW_TRIGGER</td>
                <td>58</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_NO_DUPLICATE_INDEX</td>
                <td>59</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_TEXT_FIELDS_TOTAL_LENGTH</td>
                <td>60</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DISALLOW_SET_CHARSET</td>
                <td>61</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DISALLOW_DDL</td>
                <td>62</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_DISALLOW_DML</td>
                <td>63</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_LIMIT_SIZE</td>
                <td>64</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_REQUIRE_CHARSET</td>
                <td>65</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TABLE_REQUIRE_COLLATION</td>
                <td>66</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_REQUIRED</td>
                <td>67</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_NO_NULL</td>
                <td>68</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_CHANGE_TYPE</td>
                <td>69</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_SET_DEFAULT_FOR_NOT_NULL</td>
                <td>70</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_CHANGE</td>
                <td>71</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_CHANGING_ORDER</td>
                <td>72</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_DROP</td>
                <td>73</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_DROP_IN_INDEX</td>
                <td>74</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_COMMENT</td>
                <td>75</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_AUTO_INCREMENT_MUST_INTEGER</td>
                <td>76</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_TYPE_DISALLOW_LIST</td>
                <td>77</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DISALLOW_SET_CHARSET</td>
                <td>78</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_MAXIMUM_CHARACTER_LENGTH</td>
                <td>79</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_MAXIMUM_VARCHAR_LENGTH</td>
                <td>80</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_AUTO_INCREMENT_INITIAL_VALUE</td>
                <td>81</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_AUTO_INCREMENT_MUST_UNSIGNED</td>
                <td>82</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_CURRENT_TIME_COUNT_LIMIT</td>
                <td>83</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_REQUIRE_DEFAULT</td>
                <td>84</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_DEFAULT_DISALLOW_VOLATILE</td>
                <td>85</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_ADD_NOT_NULL_REQUIRE_DEFAULT</td>
                <td>86</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_REQUIRE_CHARSET</td>
                <td>87</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COLUMN_REQUIRE_COLLATION</td>
                <td>88</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_BACKWARD_COMPATIBILITY</td>
                <td>89</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_DROP_EMPTY_DATABASE</td>
                <td>90</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_NO_DUPLICATE_COLUMN</td>
                <td>91</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_KEY_NUMBER_LIMIT</td>
                <td>92</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_PK_TYPE_LIMIT</td>
                <td>93</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_TYPE_NO_BLOB</td>
                <td>94</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_TOTAL_NUMBER_LIMIT</td>
                <td>95</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_PRIMARY_KEY_TYPE_ALLOWLIST</td>
                <td>96</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_CREATE_CONCURRENTLY</td>
                <td>97</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_TYPE_ALLOW_LIST</td>
                <td>98</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INDEX_NOT_REDUNDANT</td>
                <td>99</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_CHARSET_ALLOWLIST</td>
                <td>100</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_COLLATION_ALLOWLIST</td>
                <td>101</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_COMMENT_LENGTH</td>
                <td>102</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_PROCEDURE_DISALLOW_CREATE</td>
                <td>103</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_EVENT_DISALLOW_CREATE</td>
                <td>104</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_VIEW_DISALLOW_CREATE</td>
                <td>105</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_FUNCTION_DISALLOW_CREATE</td>
                <td>106</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_FUNCTION_DISALLOWED_LIST</td>
                <td>107</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ADVICE_ONLINE_MIGRATION</td>
                <td>108</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BUILTIN_PRIOR_BACKUP_CHECK</td>
                <td>109</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/revision.proto">store/revision.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.RevisionPayload">RevisionPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>release</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/releases/{release}
Can be empty. </p></td>
                </tr>
              
                <tr>
                  <td>file</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Format: projects/{project}/releases/{release}/files/{id}
Can be empty. </p></td>
                </tr>
              
                <tr>
                  <td>sheet</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The sheet that holds the content.
Format: projects/{project}/sheets/{sheet} </p></td>
                </tr>
              
                <tr>
                  <td>sheet_sha256</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The SHA256 hash value of the sheet. </p></td>
                </tr>
              
                <tr>
                  <td>task_run</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The task run associated with the revision.
Can be empty.
Format: projects/{project}/rollouts/{rollout}/stages/{stage}/tasks/{task}/taskRuns/{taskRun} </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.SchemaChangeType">SchemaChangeType</a></td>
                  <td></td>
                  <td><p>The type of the revision. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/role.proto">store/role.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.RolePermissions">RolePermissions</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>permissions</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/setting.proto">store/setting.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.AISetting">AISetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>enabled</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>provider</td>
                  <td><a href="#bytebase.store.AISetting.Provider">AISetting.Provider</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>endpoint</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>api_key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>model</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm">Algorithm</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>full_mask</td>
                  <td><a href="#bytebase.store.Algorithm.FullMask">Algorithm.FullMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>range_mask</td>
                  <td><a href="#bytebase.store.Algorithm.RangeMask">Algorithm.RangeMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>md5_mask</td>
                  <td><a href="#bytebase.store.Algorithm.MD5Mask">Algorithm.MD5Mask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>inner_outer_mask</td>
                  <td><a href="#bytebase.store.Algorithm.InnerOuterMask">Algorithm.InnerOuterMask</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm.FullMask">Algorithm.FullMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>substitution is the string used to replace the original value, the
max length of the string is 16 bytes. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm.InnerOuterMask">Algorithm.InnerOuterMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>prefix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>suffix_len</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.Algorithm.InnerOuterMask.MaskType">Algorithm.InnerOuterMask.MaskType</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm.MD5Mask">Algorithm.MD5Mask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>salt</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>salt is the salt value to generate a different hash that with the word alone. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm.RangeMask">Algorithm.RangeMask</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>slices</td>
                  <td><a href="#bytebase.store.Algorithm.RangeMask.Slice">Algorithm.RangeMask.Slice</a></td>
                  <td>repeated</td>
                  <td><p>We store it as a repeated field to face the fact that the original value may have multiple parts should be masked.
But frontend can be started with a single rule easily. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Algorithm.RangeMask.Slice">Algorithm.RangeMask.Slice</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>start</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>start is the start index of the original value, start from 0 and should be less than stop. </p></td>
                </tr>
              
                <tr>
                  <td>end</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>stop is the stop index of the original value, should be less than the length of the original value. </p></td>
                </tr>
              
                <tr>
                  <td>substitution</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>OriginalValue[start:end) would be replaced with replace_with. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting">AppIMSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>settings</td>
                  <td><a href="#bytebase.store.AppIMSetting.IMSetting">AppIMSetting.IMSetting</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.DingTalk">AppIMSetting.DingTalk</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>robot_code</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Feishu">AppIMSetting.Feishu</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>app_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.IMSetting">AppIMSetting.IMSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.ProjectWebhook.Type">ProjectWebhook.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>slack</td>
                  <td><a href="#bytebase.store.AppIMSetting.Slack">AppIMSetting.Slack</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>feishu</td>
                  <td><a href="#bytebase.store.AppIMSetting.Feishu">AppIMSetting.Feishu</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>wecom</td>
                  <td><a href="#bytebase.store.AppIMSetting.Wecom">AppIMSetting.Wecom</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>lark</td>
                  <td><a href="#bytebase.store.AppIMSetting.Lark">AppIMSetting.Lark</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>dingtalk</td>
                  <td><a href="#bytebase.store.AppIMSetting.DingTalk">AppIMSetting.DingTalk</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>teams</td>
                  <td><a href="#bytebase.store.AppIMSetting.Teams">AppIMSetting.Teams</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Lark">AppIMSetting.Lark</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>app_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>app_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Slack">AppIMSetting.Slack</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Teams">AppIMSetting.Teams</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>tenant_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Azure AD tenant ID (Directory ID). </p></td>
                </tr>
              
                <tr>
                  <td>client_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Azure AD application (client) ID. </p></td>
                </tr>
              
                <tr>
                  <td>client_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Azure AD client secret. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.AppIMSetting.Wecom">AppIMSetting.Wecom</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>corp_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>agent_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting">DataClassificationSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>configs</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig">DataClassificationSetting.DataClassificationConfig</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for classification. Each project can chose one
classification config. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>levels</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</a></td>
                  <td>repeated</td>
                  <td><p>levels is user defined level list for classification.
The order for the level decides its priority. </p></td>
                </tr>
              
                <tr>
                  <td>classification</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</a></td>
                  <td>repeated</td>
                  <td><p>classification is the id - DataClassification map.
The id should in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.ClassificationEntry">DataClassificationSetting.DataClassificationConfig.ClassificationEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.DataClassification">DataClassificationSetting.DataClassificationConfig.DataClassification</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the classification id in [0-9]&#43;-[0-9]&#43;-[0-9]&#43; format. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>level_id</td>
                  <td><a href="#string">string</a></td>
                  <td>optional</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.DataClassificationSetting.DataClassificationConfig.Level">DataClassificationSetting.DataClassificationConfig.Level</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnvironmentSetting">EnvironmentSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>environments</td>
                  <td><a href="#bytebase.store.EnvironmentSetting.Environment">EnvironmentSetting.Environment</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnvironmentSetting.Environment">EnvironmentSetting.Environment</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The resource id of the environment.
This value should be 4-63 characters, and valid characters
are /[a-z][0-9]-/. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The display name of the environment. </p></td>
                </tr>
              
                <tr>
                  <td>tags</td>
                  <td><a href="#bytebase.store.EnvironmentSetting.Environment.TagsEntry">EnvironmentSetting.Environment.TagsEntry</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>color</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.EnvironmentSetting.Environment.TagsEntry">EnvironmentSetting.Environment.TagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SemanticTypeSetting">SemanticTypeSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>types</td>
                  <td><a href="#bytebase.store.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SemanticTypeSetting.SemanticType">SemanticTypeSetting.SemanticType</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>id is the uuid for semantic type. </p></td>
                </tr>
              
                <tr>
                  <td>title</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the title of the semantic type, it should not be empty. </p></td>
                </tr>
              
                <tr>
                  <td>description</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>the description of the semantic type, it can be empty. </p></td>
                </tr>
              
                <tr>
                  <td>algorithm</td>
                  <td><a href="#bytebase.store.Algorithm">Algorithm</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>icon</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>icon is the icon for semantic type, it can be emoji or base64 encoded image. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.SystemSetting">SystemSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>auth_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Authentication secret for token signing (32-character random string). </p></td>
                </tr>
              
                <tr>
                  <td>workspace_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Unique workspace identifier (UUID). </p></td>
                </tr>
              
                <tr>
                  <td>license</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Enterprise license JWT token. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceApprovalSetting">WorkspaceApprovalSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>rules</td>
                  <td><a href="#bytebase.store.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</a></td>
                  <td>repeated</td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceApprovalSetting.Rule">WorkspaceApprovalSetting.Rule</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>template</td>
                  <td><a href="#bytebase.store.ApprovalTemplate">ApprovalTemplate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>condition</td>
                  <td><a href="#google.type.Expr">google.type.Expr</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#bytebase.store.WorkspaceApprovalSetting.Rule.Source">WorkspaceApprovalSetting.Rule.Source</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceProfileSetting">WorkspaceProfileSetting</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>external_url</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The external URL is used for sso authentication callback. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_signup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Disallow self-service signup, users can only be invited by the owner. </p></td>
                </tr>
              
                <tr>
                  <td>require_2fa</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Require 2FA for all users. </p></td>
                </tr>
              
                <tr>
                  <td>token_duration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The duration for token. </p></td>
                </tr>
              
                <tr>
                  <td>announcement</td>
                  <td><a href="#bytebase.store.WorkspaceProfileSetting.Announcement">WorkspaceProfileSetting.Announcement</a></td>
                  <td></td>
                  <td><p>The setting of custom announcement </p></td>
                </tr>
              
                <tr>
                  <td>maximum_role_expiration</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The max duration for role expired. </p></td>
                </tr>
              
                <tr>
                  <td>domains</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The workspace domain, e.g., bytebase.com. </p></td>
                </tr>
              
                <tr>
                  <td>enforce_identity_domain</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Only user and group from the domains can be created and login. </p></td>
                </tr>
              
                <tr>
                  <td>database_change_mode</td>
                  <td><a href="#bytebase.store.WorkspaceProfileSetting.DatabaseChangeMode">WorkspaceProfileSetting.DatabaseChangeMode</a></td>
                  <td></td>
                  <td><p>The workspace database change mode. </p></td>
                </tr>
              
                <tr>
                  <td>disallow_password_signin</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to disallow password signin. (Except workspace admins) </p></td>
                </tr>
              
                <tr>
                  <td>enable_metric_collection</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to enable metric collection for the workspace. </p></td>
                </tr>
              
                <tr>
                  <td>inactive_session_timeout</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>The session expiration time if not activity detected for the user. Value &lt;= 0 means no limit. </p></td>
                </tr>
              
                <tr>
                  <td>enable_audit_log_stdout</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to enable audit logging to stdout in structured JSON format.
Requires TEAM or ENTERPRISE license. </p></td>
                </tr>
              
                <tr>
                  <td>watermark</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to display watermark on pages.
Requires ENTERPRISE license. </p></td>
                </tr>
              
                <tr>
                  <td>directory_sync_token</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The token for directory sync authentication. </p></td>
                </tr>
              
                <tr>
                  <td>branding_logo</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The branding logo as a data URI (e.g. data:image/png;base64,...). </p></td>
                </tr>
              
                <tr>
                  <td>password_restriction</td>
                  <td><a href="#bytebase.store.WorkspaceProfileSetting.PasswordRestriction">WorkspaceProfileSetting.PasswordRestriction</a></td>
                  <td></td>
                  <td><p>Password restriction settings. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceProfileSetting.Announcement">WorkspaceProfileSetting.Announcement</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>level</td>
                  <td><a href="#bytebase.store.WorkspaceProfileSetting.Announcement.AlertLevel">WorkspaceProfileSetting.Announcement.AlertLevel</a></td>
                  <td></td>
                  <td><p>The alert level of the announcement. </p></td>
                </tr>
              
                <tr>
                  <td>text</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The text of the announcement. </p></td>
                </tr>
              
                <tr>
                  <td>link</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The optional link, user can follow the link to check extra details </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.WorkspaceProfileSetting.PasswordRestriction">WorkspaceProfileSetting.PasswordRestriction</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>min_length</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>min_length is the minimum length for password, should be no less than 8. </p></td>
                </tr>
              
                <tr>
                  <td>require_number</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_number requires the password must contain at least one number. </p></td>
                </tr>
              
                <tr>
                  <td>require_letter</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_letter requires the password must contain at least one letter, regardless of upper case or lower case </p></td>
                </tr>
              
                <tr>
                  <td>require_uppercase_letter</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_uppercase_letter requires the password must contain at least one upper case letter. </p></td>
                </tr>
              
                <tr>
                  <td>require_special_character</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_special_character requires the password must contain at least one special character. </p></td>
                </tr>
              
                <tr>
                  <td>require_reset_password_for_first_login</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>require_reset_password_for_first_login requires users to reset their password after the 1st login. </p></td>
                </tr>
              
                <tr>
                  <td>password_rotation</td>
                  <td><a href="#google.protobuf.Duration">google.protobuf.Duration</a></td>
                  <td></td>
                  <td><p>password_rotation requires users to reset their password after the duration. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.AISetting.Provider">AISetting.Provider</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>PROVIDER_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OPEN_AI</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CLAUDE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>GEMINI</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>AZURE_OPENAI</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.Algorithm.InnerOuterMask.MaskType">Algorithm.InnerOuterMask.MaskType</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>MASK_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>INNER</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>OUTER</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.SettingName">SettingName</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SETTING_NAME_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SYSTEM</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_PROFILE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>WORKSPACE_APPROVAL</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>APP_IM</td>
                <td>8</td>
                <td><p>7 was ENTERPRISE_LICENSE, migrated to SYSTEM setting</p></td>
              </tr>
            
              <tr>
                <td>AI</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATA_CLASSIFICATION</td>
                <td>14</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SEMANTIC_TYPES</td>
                <td>15</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ENVIRONMENT</td>
                <td>19</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.WorkspaceApprovalSetting.Rule.Source">WorkspaceApprovalSetting.Rule.Source</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>SOURCE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CHANGE_DATABASE</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>CREATE_DATABASE</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>EXPORT_DATA</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>REQUEST_ROLE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.WorkspaceProfileSetting.Announcement.AlertLevel">WorkspaceProfileSetting.Announcement.AlertLevel</h3>
        <p>We support three levels of AlertLevel: INFO, WARNING, and ERROR.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>ALERT_LEVEL_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_INFO</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_WARNING</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ALERT_LEVEL_CRITICAL</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.WorkspaceProfileSetting.DatabaseChangeMode">WorkspaceProfileSetting.DatabaseChangeMode</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>DATABASE_CHANGE_MODE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PIPELINE</td>
                <td>1</td>
                <td><p>A more advanced database change process, including custom approval workflows and other advanced features.
Default to this mode.</p></td>
              </tr>
            
              <tr>
                <td>EDITOR</td>
                <td>2</td>
                <td><p>A simple database change process in SQL editor. Users can execute SQL directly.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/sheet.proto">store/sheet.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.SheetPayload">SheetPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>engine</td>
                  <td><a href="#bytebase.store.Engine">Engine</a></td>
                  <td></td>
                  <td><p>The SQL dialect. </p></td>
                </tr>
              
                <tr>
                  <td>commands</td>
                  <td><a href="#bytebase.store.Range">Range</a></td>
                  <td>repeated</td>
                  <td><p>The start and end position of each command in the sheet statement. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task.proto">store/task.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.Task">Task</h3>
        <p>Task is the metadata for database operation tasks.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>skipped</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether the task was skipped during execution. </p></td>
                </tr>
              
                <tr>
                  <td>skipped_reason</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Reason why the task was skipped. </p></td>
                </tr>
              
                <tr>
                  <td>spec_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>UUID that identifies the spec this task implements. </p></td>
                </tr>
              
                <tr>
                  <td>sheet_id</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p>The sheet ID containing SQL statements for this task. </p></td>
                </tr>
              
                <tr>
                  <td>environment_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The environment where the database will be created. </p></td>
                </tr>
              
                <tr>
                  <td>database_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Name of the database to create. </p></td>
                </tr>
              
                <tr>
                  <td>table_name</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Optional table name to create (required for some databases like MongoDB). </p></td>
                </tr>
              
                <tr>
                  <td>character_set</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Character set for the new database. </p></td>
                </tr>
              
                <tr>
                  <td>collation</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Collation for the new database. </p></td>
                </tr>
              
                <tr>
                  <td>schema_version</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Schema version after migration is applied. </p></td>
                </tr>
              
                <tr>
                  <td>enable_prior_backup</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to create an automatic backup before applying changes. </p></td>
                </tr>
              
                <tr>
                  <td>flags</td>
                  <td><a href="#bytebase.store.Task.FlagsEntry">Task.FlagsEntry</a></td>
                  <td>repeated</td>
                  <td><p>Configuration flags for gh-ost migration tool. </p></td>
                </tr>
              
                <tr>
                  <td>enable_ghost</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p>Whether to use gh-ost for online schema migration. </p></td>
                </tr>
              
                <tr>
                  <td>task_release_source</td>
                  <td><a href="#bytebase.store.TaskReleaseSource">TaskReleaseSource</a></td>
                  <td></td>
                  <td><p>Source information if task is created from a release. </p></td>
                </tr>
              
                <tr>
                  <td>password</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Password to encrypt the exported data archive. </p></td>
                </tr>
              
                <tr>
                  <td>format</td>
                  <td><a href="#bytebase.store.ExportFormat">ExportFormat</a></td>
                  <td></td>
                  <td><p>Format of the exported data (SQL, CSV, JSON, etc). </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.Task.FlagsEntry">Task.FlagsEntry</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>key</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>value</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskReleaseSource">TaskReleaseSource</h3>
        <p>TaskReleaseSource contains information about the release file this task originated from.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>file</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>Resource name of the release file.
Format: projects/{project}/releases/{release}/files/{id} </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.Task.Type">Task.Type</h3>
        <p>Type represents the type of database operation to perform.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TASK_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_CREATE</td>
                <td>1</td>
                <td><p>Create a new database.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_MIGRATE</td>
                <td>2</td>
                <td><p>Apply schema/data migrations to an existing database.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_EXPORT</td>
                <td>5</td>
                <td><p>Export data from a database.</p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SDL</td>
                <td>6</td>
                <td><p>Apply declarative schema changes (state-based migration).</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/task_run_log.proto">store/task_run_log.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.TaskRunLog">TaskRunLog</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TaskRunLog.Type">TaskRunLog.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>deploy_id</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_dump_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.SchemaDumpStart">TaskRunLog.SchemaDumpStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>schema_dump_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.SchemaDumpEnd">TaskRunLog.SchemaDumpEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_execute</td>
                  <td><a href="#bytebase.store.TaskRunLog.CommandExecute">TaskRunLog.CommandExecute</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>command_response</td>
                  <td><a href="#bytebase.store.TaskRunLog.CommandResponse">TaskRunLog.CommandResponse</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_sync_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.DatabaseSyncStart">TaskRunLog.DatabaseSyncStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>database_sync_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.DatabaseSyncEnd">TaskRunLog.DatabaseSyncEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>task_run_status_update</td>
                  <td><a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate">TaskRunLog.TaskRunStatusUpdate</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>transaction_control</td>
                  <td><a href="#bytebase.store.TaskRunLog.TransactionControl">TaskRunLog.TransactionControl</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.PriorBackupStart">TaskRunLog.PriorBackupStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>prior_backup_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.PriorBackupEnd">TaskRunLog.PriorBackupEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>retry_info</td>
                  <td><a href="#bytebase.store.TaskRunLog.RetryInfo">TaskRunLog.RetryInfo</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>compute_diff_start</td>
                  <td><a href="#bytebase.store.TaskRunLog.ComputeDiffStart">TaskRunLog.ComputeDiffStart</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>compute_diff_end</td>
                  <td><a href="#bytebase.store.TaskRunLog.ComputeDiffEnd">TaskRunLog.ComputeDiffEnd</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.CommandExecute">TaskRunLog.CommandExecute</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>command_indexes</td>
                  <td><a href="#int32">int32</a></td>
                  <td>repeated</td>
                  <td><p>Either `command_indexes` or `statement` is set.
The indexes of the executed commands. </p></td>
                </tr>
              
                <tr>
                  <td>statement</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The statement to be executed. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.CommandResponse">TaskRunLog.CommandResponse</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>affected_rows</td>
                  <td><a href="#int64">int64</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>all_affected_rows</td>
                  <td><a href="#int64">int64</a></td>
                  <td>repeated</td>
                  <td><p>`all_affected_rows` is the affected rows of each command.
`all_affected_rows` may be unavailable if the database driver doesn&#39;t support it. Caller should fallback to `affected_rows` in that case. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.ComputeDiffEnd">TaskRunLog.ComputeDiffEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.ComputeDiffStart">TaskRunLog.ComputeDiffStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.DatabaseSyncEnd">TaskRunLog.DatabaseSyncEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.DatabaseSyncStart">TaskRunLog.DatabaseSyncStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.PriorBackupEnd">TaskRunLog.PriorBackupEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>prior_backup_detail</td>
                  <td><a href="#bytebase.store.PriorBackupDetail">PriorBackupDetail</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.PriorBackupStart">TaskRunLog.PriorBackupStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.RetryInfo">TaskRunLog.RetryInfo</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>retry_count</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>maximum_retries</td>
                  <td><a href="#int32">int32</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.SchemaDumpEnd">TaskRunLog.SchemaDumpEnd</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.SchemaDumpStart">TaskRunLog.SchemaDumpStart</h3>
        <p></p>

        

        
      
        <h3 id="bytebase.store.TaskRunLog.TaskRunStatusUpdate">TaskRunLog.TaskRunStatusUpdate</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>status</td>
                  <td><a href="#bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status">TaskRunLog.TaskRunStatusUpdate.Status</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.TaskRunLog.TransactionControl">TaskRunLog.TransactionControl</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>type</td>
                  <td><a href="#bytebase.store.TaskRunLog.TransactionControl.Type">TaskRunLog.TransactionControl.Type</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>error</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.TaskRunLog.TaskRunStatusUpdate.Status">TaskRunLog.TaskRunStatusUpdate.Status</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>STATUS_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RUNNING_WAITING</td>
                <td>1</td>
                <td><p>The task run is ready to be executed by the scheduler.</p></td>
              </tr>
            
              <tr>
                <td>RUNNING_RUNNING</td>
                <td>2</td>
                <td><p>The task run is being executed by the scheduler.</p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskRunLog.TransactionControl.Type">TaskRunLog.TransactionControl.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>BEGIN</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMIT</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>ROLLBACK</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      
        <h3 id="bytebase.store.TaskRunLog.Type">TaskRunLog.Type</h3>
        <p></p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DUMP_START</td>
                <td>1</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>SCHEMA_DUMP_END</td>
                <td>2</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMAND_EXECUTE</td>
                <td>3</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMMAND_RESPONSE</td>
                <td>4</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SYNC_START</td>
                <td>5</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>DATABASE_SYNC_END</td>
                <td>6</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TASK_RUN_STATUS_UPDATE</td>
                <td>7</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>TRANSACTION_CONTROL</td>
                <td>8</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PRIOR_BACKUP_START</td>
                <td>9</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>PRIOR_BACKUP_END</td>
                <td>10</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>RETRY_INFO</td>
                <td>11</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMPUTE_DIFF_START</td>
                <td>12</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>COMPUTE_DIFF_END</td>
                <td>13</td>
                <td><p></p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/user.proto">store/user.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.MFAConfig">MFAConfig</h3>
        <p>MFAConfig is the MFA configuration for a user.</p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>otp_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The otp_secret is the secret key used to validate the OTP code. </p></td>
                </tr>
              
                <tr>
                  <td>temp_otp_secret</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The temp_otp_secret is the temporary secret key used to validate the OTP code and will replace the otp_secret in two-phase commits. </p></td>
                </tr>
              
                <tr>
                  <td>recovery_codes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The recovery_codes are the codes that can be used to recover the account. </p></td>
                </tr>
              
                <tr>
                  <td>temp_recovery_codes</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The temp_recovery_codes are the temporary codes that will replace the recovery_codes in two-phase commits. </p></td>
                </tr>
              
                <tr>
                  <td>temp_otp_secret_created_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p>The temp_otp_secret_created_time is the timestamp when temp_otp_secret was created. Used to enforce expiration. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      
        <h3 id="bytebase.store.UserProfile">UserProfile</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>last_login_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>last_change_password_time</td>
                  <td><a href="#google.protobuf.Timestamp">google.protobuf.Timestamp</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>source</td>
                  <td><a href="#string">string</a></td>
                  <td></td>
                  <td><p>The source indicates where the user comes from. For now we support Entra ID SCIM sync, so the source could be Entra ID. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      
        <h3 id="bytebase.store.PrincipalType">PrincipalType</h3>
        <p>PrincipalType is the type of a principal.</p>
        <table class="enum-table">
          <thead>
            <tr><td>Name</td><td>Number</td><td>Description</td></tr>
          </thead>
          <tbody>
            
              <tr>
                <td>PRINCIPAL_TYPE_UNSPECIFIED</td>
                <td>0</td>
                <td><p></p></td>
              </tr>
            
              <tr>
                <td>END_USER</td>
                <td>1</td>
                <td><p>END_USER represents the human being using Bytebase.</p></td>
              </tr>
            
              <tr>
                <td>SERVICE_ACCOUNT</td>
                <td>2</td>
                <td><p>SERVICE_ACCOUNT represents the external service calling Bytebase OpenAPI.</p></td>
              </tr>
            
              <tr>
                <td>SYSTEM_BOT</td>
                <td>3</td>
                <td><p>SYSTEM_BOT represents the internal system bot performing operations.</p></td>
              </tr>
            
          </tbody>
        </table>
      

      

      
    
      
      <div class="file-heading">
        <h2 id="store/worksheet.proto">store/worksheet.proto</h2><a href="#title">Top</a>
      </div>
      <p></p>

      
        <h3 id="bytebase.store.WorkSheetOrganizerPayload">WorkSheetOrganizerPayload</h3>
        <p></p>

        
          <table class="field-table">
            <thead>
              <tr><td>Field</td><td>Type</td><td>Label</td><td>Description</td></tr>
            </thead>
            <tbody>
              
                <tr>
                  <td>starred</td>
                  <td><a href="#bool">bool</a></td>
                  <td></td>
                  <td><p> </p></td>
                </tr>
              
                <tr>
                  <td>folders</td>
                  <td><a href="#string">string</a></td>
                  <td>repeated</td>
                  <td><p>The folder path for a worksheet.
For example, if the folders is [A, B, C], means the worksheet is in the A/B/C subfolder. </p></td>
                </tr>
              
            </tbody>
          </table>

          

        
      

      

      

      
    

    <h2 id="scalar-value-types">Scalar Value Types</h2>
    <table class="scalar-value-types-table">
      <thead>
        <tr><td>.proto Type</td><td>Notes</td><td>C++</td><td>Java</td><td>Python</td><td>Go</td><td>C#</td><td>PHP</td><td>Ruby</td></tr>
      </thead>
      <tbody>
        
          <tr id="double">
            <td>double</td>
            <td></td>
            <td>double</td>
            <td>double</td>
            <td>float</td>
            <td>float64</td>
            <td>double</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="float">
            <td>float</td>
            <td></td>
            <td>float</td>
            <td>float</td>
            <td>float</td>
            <td>float32</td>
            <td>float</td>
            <td>float</td>
            <td>Float</td>
          </tr>
        
          <tr id="int32">
            <td>int32</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="int64">
            <td>int64</td>
            <td>Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="uint32">
            <td>uint32</td>
            <td>Uses variable-length encoding.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int/long</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="uint64">
            <td>uint64</td>
            <td>Uses variable-length encoding.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint32">
            <td>sint32</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sint64">
            <td>sint64</td>
            <td>Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="fixed32">
            <td>fixed32</td>
            <td>Always four bytes. More efficient than uint32 if values are often greater than 2^28.</td>
            <td>uint32</td>
            <td>int</td>
            <td>int</td>
            <td>uint32</td>
            <td>uint</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="fixed64">
            <td>fixed64</td>
            <td>Always eight bytes. More efficient than uint64 if values are often greater than 2^56.</td>
            <td>uint64</td>
            <td>long</td>
            <td>int/long</td>
            <td>uint64</td>
            <td>ulong</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="sfixed32">
            <td>sfixed32</td>
            <td>Always four bytes.</td>
            <td>int32</td>
            <td>int</td>
            <td>int</td>
            <td>int32</td>
            <td>int</td>
            <td>integer</td>
            <td>Bignum or Fixnum (as required)</td>
          </tr>
        
          <tr id="sfixed64">
            <td>sfixed64</td>
            <td>Always eight bytes.</td>
            <td>int64</td>
            <td>long</td>
            <td>int/long</td>
            <td>int64</td>
            <td>long</td>
            <td>integer/string</td>
            <td>Bignum</td>
          </tr>
        
          <tr id="bool">
            <td>bool</td>
            <td></td>
            <td>bool</td>
            <td>boolean</td>
            <td>boolean</td>
            <td>bool</td>
            <td>bool</td>
            <td>boolean</td>
            <td>TrueClass/FalseClass</td>
          </tr>
        
          <tr id="string">
            <td>string</td>
            <td>A string must always contain UTF-8 encoded or 7-bit ASCII text.</td>
            <td>string</td>
            <td>String</td>
            <td>str/unicode</td>
            <td>string</td>
            <td>string</td>
            <td>string</td>
            <td>String (UTF-8)</td>
          </tr>
        
          <tr id="bytes">
            <td>bytes</td>
            <td>May contain any arbitrary sequence of bytes.</td>
            <td>string</td>
            <td>ByteString</td>
            <td>str</td>
            <td>[]byte</td>
            <td>ByteString</td>
            <td>string</td>
            <td>String (ASCII-8BIT)</td>
          </tr>
        
      </tbody>
    </table>
  </body>
</html>

